Code: Select all
#NoEnv
#Warn
#SingleInstance Force
SetTitleMatchMode, 2
SetBatchLines, -1
SetDefaultMouseSpeed, 0 ; test 01-05-2017
SendMode, Input
;################# VARIABLES #################
Percentage := 0
fromaddress = [email protected]
smtpserver = smtp.gmail.com
username = [email protected]
password = mein***Passwort***
attachment =
;################# VARIABLES #################
;################# FUNCTIONS #################
DisableButtons()
{
GuiControl, disable, Send
GuiControl, disable, Cancel
GuiControl, disable, Add attachment
}
EnableButtons()
{
GuiControl, enable, Send
GuiControl, enable, Cancel
GuiControl, enable, Add attachment
}
CreateScript()
{
global
FileDelete, email.ps1 ; delete powershell script in case it exists (it shouldnt)
FileAppend,
(
$message = new-object System.Net.Mail.MailMessage
$message.From = "%fromaddress%"
$message.To.Add("%EmailTo%")
$message.CC.Add("%CC%")
$message.Bcc.Add("%BCC%")
$message.IsBodyHtml = $True
$message.Subject = "%Subject%"
$attach = new-object Net.Mail.Attachment("%attachment%")
$message.Attachments.Add($attach)
$message.body = "%Message%"
$smtp = new-object Net.Mail.SmtpClient(%smtpserver%, 587)
$smtp.EnableSsl = $True
$smtp.credentials = New-Object System.Net.NetworkCredential("%username%", "%password%")
$smtp.Send($message)
),email.ps1, UTF-8
run, powershell.exe -windowstyle hidden -ExecutionPolicy Bypass -File email.ps1
Sleep, 2000
FileDelete, email.ps1 ; delete powershell script
}
;################# FUNCTIONS #################
;################ MAIN SCRIPT ################
Gui, Color, B0C4FF, FFFFFF
Gui, +AlWaysOnTop
Gui, Add, Text, x46 y67 w50 h17 , Email to:
Gui, Add, Text, x46 y87 w50 h17 , CC:
Gui, Add, Text, x46 y107 w50 h17 , BCC:
Gui, Add, Edit, x106 y67 w210 h17 vEmailTo ,
Gui, Add, Edit, x106 y87 w210 h17 vCC ,
Gui, Add, Edit, x106 y107 w210 h17 vBCC ,
Gui, Add, Text, x46 y127 w50 h17 , Subject:
Gui, Add, Edit, x106 y127 w210 h17 vSubject ,
Gui, Add, Edit, x46 y200 w410 h120 vMessage,
Gui, Font, Bold,
Gui, Add, Button, x46 y157 w130 h30 , Add attachment
Gui, Font, cDefault
Gui, Add, Text, x180 y164 w300 h30 vAttach, ;%attachment%
Gui, Add, Button, x326 y67 w60 h70 , Send
Gui, Add, Button, x396 y67 w60 h70 , Cancel
Gui, Add, Progress, x100 y340 w300 h20 cBlue vMyProgress
Gui, Add, Text, x402 y343 w30 h15 vPercentage, 1
GuiControl, Hide, MyProgress
GuiControl, Hide, Percentage
; Generated using SmartGUI Creator for SciTE
Gui, Show, w521 h370,Send email
return
ButtonSend:
Gui +OwnDialogs
Gui, submit ; store content of each control into its associated variable.
if (EmailTo = "") && (BCC = "") && (CC = "") ; Don't send email if EmailTo, CC, and BCC are all empty
{
MsgBox, You didn't select a recipient !
Gui, show
return
}
if(!Instr(EmailTo, "@") && !InStr(EmailTo, ".") && EmailTo != "") ; check if EmailTo field contains a @ and .
{
MsgBox, Recipient field is invalid
Gui, show
return
}
if(!Instr(CC, "@") && !InStr(CC, ".") && CC != "") ; check if CC field contains a @ and .
{
MsgBox, CC field is invalid
Gui, show
return
}
if(!Instr(BCC, "@") && !InStr(BCC, ".") && BCC != "") ; check if BCC field contains a @ and .
{
MsgBox, BCC field is invalid
Gui, show
return
}
GuiControl,, MyProgress, ; reset progress bar to 0.
GuiControl, Show, MyProgress ; show progress bar.
GuiControl, Show, Percentage ; show percentage.
Gui, show
DisableButtons() ; disable Send / Cancel and Add Attachment button.
Loop, 100 ; run progressbar until 100%.
{
Percentage++ ; percentage plus 1
GuiControl,, MyProgress, +1
GuiControl,, Percentage, %Percentage% `%
Sleep, 3
}
Percentage := 0 ; reset percentage to 0.
GuiControl, Hide, Percentage ; hide percentage.
Gui, Font, cRed Bold ; define color for control 'Attach'.
GuiControl, Font, Attach ; Turn gui control 'Attach' bold red.
GuiControl,, Attach, Email succesfully sent
Gui, Color, 99FF91, FFFFFF ; turn GUI green to indicate sending succes.
Gui, Show
Sleep, 2000
Gui, Color, B0C4FF, FFFFFF ; reset GUI to original color.
GuiControl,, EmailTo, ; clear EmailTo Field
GuiControl,, CC, ; clear CC Field
GuiControl,, BCC, ; clear BCC Field
GuiControl,, Attach, ; clear "succesfully sent" message.
GuiControl,, Subject, ; clear Subject Field
GuiControl,, Message, ; clear Message Field
GuiControl, Hide, MyProgress
EnableButtons()
CreateScript() ; Generate PowerShell script and run it.
Gui, Show
return
ButtonCancel:
ExitApp
ButtonAddattachment:
Gui +OwnDialogs
DisableButtons()
FileSelectFile, attachment,,%A_WorkingDir%\,Please select your file
Gui, Font, cBlue Bold ; Set gui bold blue
GuiControl, Font, Attach ; Turn "succesfully sent" message bold blue
GuiControl,, Attach, %attachment%
EnableButtons()
Gui, Show
return
GuiClose:
ExitApp
;################ MAIN SCRIPT ################