Post by divanebaba » 16 May 2017, 12:06
Hier ist der gesamte Code.
Kopiert aus Beitrag
https://autohotkey.com/boards/viewtopic ... powershell
Code: Select all
#NoEnv
#Warn
#SingleInstance Force
SetTitleMatchMode, 2
SetBatchLines, -1
SetDefaultMouseSpeed, 0 ; test 01-05-2017
SendMode, Input
;################# VARIABLES #################
Percentage := 0
fromaddress = max.musteridiot@gmail.com
smtpserver = smtp.gmail.com
username = max.musteridiot@gmail.com
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 ################
Und so sieht die Eingabemaske aus.
Oben gebe ich dann noch die Zieladresse an und ankommen tut bei mir gar nichts.
Das einzig Veränderte am Code sind die Zugangsdaten, und bei
FileAppend habe ich mit Codierungen experimentiert. Hier steht noch
UTF-8 drin.
Das Originalskript verzichtet auf die Codierungsangabe.
Ich bin total erschöpft vom Ausprobieren.
Hier ist der gesamte Code.
Kopiert aus Beitrag
[url]https://autohotkey.com/boards/viewtopic.php?f=6&t=31437&hilit=powershell[/url]
[spoiler2=][code]
#NoEnv
#Warn
#SingleInstance Force
SetTitleMatchMode, 2
SetBatchLines, -1
SetDefaultMouseSpeed, 0 ; test 01-05-2017
SendMode, Input
;################# VARIABLES #################
Percentage := 0
fromaddress = max.musteridiot@gmail.com
smtpserver = smtp.gmail.com
username = max.musteridiot@gmail.com
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 ################[/code][/spoiler2]
Und so sieht die Eingabemaske aus.
Oben gebe ich dann noch die Zieladresse an und ankommen tut bei mir gar nichts.
[spoiler2=][img]https://s-media-cache-ak0.pinimg.com/originals/2c/6d/bf/2c6dbf69a51aec55beae47a78fa47e6a.jpg[/img][/spoiler2]
Das einzig Veränderte am Code sind die Zugangsdaten, und bei [b]FileAppend[/b] habe ich mit Codierungen experimentiert. Hier steht noch [b]UTF-8[/b] drin.
Das Originalskript verzichtet auf die Codierungsangabe.
Ich bin total erschöpft vom Ausprobieren. :|