- Offizieller Beitrag
Dieses kleine tool kann eine e-mail an unendlich viele leute verschicken die ihr kompfortabel in einer liste abspeichert!
Man brauch noch eine zusatz datei: sendEmail.exe
eine datei sollte ca so aussehen:
Max01 würde der start so aussehen:
Lieber Max01
bei Max so:
Hi Max
viel spaß mit diesem tool
Spoiler anzeigen
C
;#######################################################
;Include&FileInstall
;#######################################################
#include <guilistview.au3>
#include <file.au3>
#include <GuiConstants.au3>
FileInstall("sendEmail.exe",@TempDir & "\sendEmail.exe")
;#######################################################
;Adress
;#######################################################
$save = "NOT"
$guba = ""
$AdressDat = IniRead("data.ini","Adress","last","Error")
$From = IniRead("data.ini","Adress","from","Error")
If $From = "Error" Then
$From = InputBox("E-Mail","Geben Sie hier ihre E-Mail adresse ein, Sie muss auch nicht Existieren!",@UserName&"@AutoIt.de")
If @error Then Exit
IniWrite("data.ini","Adress","from",$From)
EndIf
;#######################################################
;GUI
;#######################################################
GUICreate("E-Mail Sender", 860, 470, (@DesktopWidth - 860) / 2, (@DesktopHeight - 470) / 2, -1, $WS_EX_ACCEPTFILES)
$Betreff = GUICtrlCreateInput("", 80, 10, 340, 20)
GUICtrlCreateLabel("Betreff:", 10, 10, 60, 20)
$Anhang = GUICtrlCreateInput("", 80, 40, 320, 20)
GUICtrlSetState(-1, $GUI_ACCEPTFILES)
GUICtrlCreateLabel("Anhang:", 10, 40, 70, 20)
$open = GUICtrlCreateButton("..", 400, 40, 20, 20)
$data = GUICtrlCreateEdit("", 80, 70, 340, 300)
GUICtrlCreateLabel("Datei:", 10, 100, 60, 20)
$Progress = GUICtrlCreateProgress(440, 10, 410, 10)
$List = GUICtrlCreateListView("Name |Email|Geschickt", 440, 20, 410, 396,-1,$LVS_EX_CHECKBOXES)
Dim $adresses = "", $adresseslist
$fcl = _FileCountLines($AdressDat)
Global $Listitem[$fcl + 1]
$Adress = FileOpen($AdressDat, 0)
For $for = 1 To $fcl
$frl = FileReadLine($Adress)
If StringInStr($frl, "#") Then ContinueLoop
$adresseslist1 = StringSplit($frl, "*")
$adresseslist1 = $adresseslist1[1]
$Listitem[$for] = GUICtrlCreateListViewItem($adresseslist1, $List)
GUICtrlSetState(-1,$GUI_CHECKED)
Next
$del = GUICtrlCreateListViewItem("|ga|fa", $List)
GUICtrlSetData(-1, $adresseslist)
$Send = GUICtrlCreateButton("Senden", 170, 370, 130, 40)
$Status = GUICtrlCreateLabel("Status: Warte auf eingabe...", 0, 430, 860, 20, $SS_SUNKEN)
$datei = GUICtrlCreateMenu("&Datei")
$offn = GUICtrlCreateMenuItem("&Nachricht Öffnen", $datei)
GUICtrlCreateMenuItem("", $datei)
$adroffn = GUICtrlCreateMenuItem("&Adressen Listen Öffnen", $datei)
FileClose($Adress)
GUISetState()
GUICtrlDelete($del)
;#######################################################
;While
;#######################################################
While 1
$msg = GUIGetMsg()
Select
Case $msg = $GUI_EVENT_CLOSE
ExitLoop
Case $msg = $Send
GUICtrlSetData($Status, "Status: Abfrage")
If MsgBox(4, "E-Mail Senden", "Sind Sie sich sicher die E-Mail zu senden?") = 7 Then ContinueLoop
Global $fod, $frl, $for, $offn
GUICtrlSetData($Status, "Status: Checkt die Eingaben")
$Betreffred = GUICtrlRead($Betreff)
$fcl = _FileCountLines($AdressDat)
$do = 0
$awntime = 0
$awnred = ";"
For $for = 0 To $fcl-1
If 0 = _GUICtrlListViewGetCheckedState($List, $for) Then
;~ MsgBox(16,"",$for+1)
$awntime = 1
$awnred &= $for+1 &";"
$do = 1
EndIf
Next
$Anhangred = GUICtrlRead($Anhang)
If Not $Anhangred = "" Then
If Not FileExists($Anhangred) Then
MsgBox(16, "", "Datei " & $Anhangred & " existiert nicht!")
ContinueLoop
EndIf
EndIf
$datared = GUICtrlRead($data)
$ss = StringSplit($adresseslist, "|")
$sscrlf = StringSplit($adresses, @CRLF)
Dim $adressesEmail, $fcl
GUICtrlSetData($Status, "Status: Sendet E-Mail: " & $Betreffred)
$save = "NOT"
$adresses = ""
;~ MsgBox(0,"",@error)
$Adress = FileOpen($AdressDat, 0)
For $for = 1 To $fcl
$frl = FileReadLine($Adress, $for)
If StringInStr($frl, "#") Then ContinueLoop
$gaga = GUICtrlRead($Listitem[$for])
$adressesEmail = StringSplit(StringReplace($frl, "*", "|"), "|")
If StringInStr($awnred,";"&$for&";") Then
GUICtrlSetData($Listitem[$for], $gaga & "Überspringen")
GUICtrlSetData($Progress, $for* (100 / $fcl))
ContinueLoop
EndIf
If Not StringInStr(GUICtrlRead($Listitem[$for]),"Wird Geschickt") Then StringReplace(GUICtrlRead($Listitem[$for]),"Wird Geschickt"," ")
GUICtrlSetData($Listitem[$for], $gaga & "Wird Geschickt")
_sendEmail ($adressesEmail[2], $From, $Betreffred, $adressesEmail[3] & " " & $adressesEmail[1] & @CRLF & $datared, "post.strato.de", $Anhangred)
;~ MsgBox(0,"","")
ConsoleWrite($adressesEmail[2] &$From & $Betreffred & $adressesEmail[3] & " " & $adressesEmail[1] & @CRLF & $datared & "post.strato.de" & $Anhangred&@LF)
;~ Sleep(1000)
;~ MsgBox(0, "", "Betreff:" & $Betreffred & @CRLF & "An Wen Nicht:" & $awnred & @CRLF & "Anhang:" & $Anhangred & @CRLF & "Message: " & $adressesEmail[3] & " " & $adressesEmail[1] & @CRLF & $datared & @CRLF & @CRLF & "E-Mail: " & $adressesEmail[2])
GUICtrlSetData($Progress, $for* (100 / $fcl))
If Not StringInStr(GUICtrlRead($Listitem[$for]),"Gesendet") Then StringReplace(GUICtrlRead($Listitem[$for]),"Gesendet"," ")
GUICtrlSetData($Listitem[$for], $gaga&"Gesendet")
Next
FileClose($Adress)
GUICtrlSetData($Status, "Status: Fertig!")
MsgBox(64,"E-Mail","Die E-Mail "&$Betreffred&" wurde erfolgreich gesendet!")
_GUICtrlListViewDeleteAllItems($List)
Global $Listitem[$fcl + 1]
$Adress = FileOpen($AdressDat, 0)
Sleep(50)
For $for = 1 To $fcl
$frl = FileReadLine($Adress)
If StringInStr($frl, "#") Then ContinueLoop
$adresseslist1 = StringSplit($frl, "*")
$adresseslist1 = $adresseslist1[1]
$Listitem[$for] = GUICtrlCreateListViewItem($adresseslist1, $List)
GUICtrlSetState(-1,$GUI_CHECKED)
Sleep(100)
Next
FileClose($Adress)
GUICtrlSetData($Progress,"0")
Case $msg = $adroffn
GUICtrlSetData($Status, "Status: Öffnen")
$AdressDat = FileOpenDialog("", @ScriptDir&"\Adressen", "Alle(*.dat)")
If @error Then ContinueLoop
_GUICtrlListViewDeleteAllItems($List)
$fcl = _FileCountLines($AdressDat)
$Adress = FileOpen($AdressDat, 0)
Global $Listitem[$fcl + 1]
Sleep(50)
For $for = 1 To $fcl
$frl = FileReadLine($Adress)
If StringInStr($frl, "#") Then ContinueLoop
$adresseslist1 = StringSplit($frl, "*")
$adresseslist1 = $adresseslist1[1]
$Listitem[$for] = GUICtrlCreateListViewItem($adresseslist1, $List)
GUICtrlSetState(-1,$GUI_CHECKED)
Sleep(100)
Next
GUICtrlSetData($Status, "Status: Warte auf eingabe...")
IniWrite(@ScriptDir&"\data.ini","Adress","last",$AdressDat)
;~ RegWrite("HKEY_CURRENT_USER\Software\E-Mail","lastadress","REG_SZ",$AdressDat)
FileClose($Adress)
Case $msg = $open
GUICtrlSetData($Status, "Status: Öffnen")
$fad = FileOpenDialog("", "", "Alle(*.*)")
If @error Then ContinueLoop
GUICtrlSetData($Anhang, $fad)
GUICtrlSetData($Status, "Status: Warte auf eingabe...")
FileClose($fad)
Case $msg = $offn
GUICtrlSetData($Status, "Status: Öffnen")
$fidini = IniRead(@ScriptDir&"\data.ini", "FOD", "last", "")
$fid = FileOpenDialog("", $fidini, "Text dateien(*.txt)|Alle(*.*)")
If @error Then ContinueLoop
IniWrite(@ScriptDir&"\data.ini", "FOD", "last", $fid)
$fcl1 = _FileCountLines($fid)
$frl1 = ""
$fidOp = FileOpen($fid,0)
For $far = 1 To $fcl1
$frl1 = $frl1 & FileReadLine($fidOp, $far) & @CRLF
Next
FileClose($fidOp)
GUICtrlSetData($data, $frl1)
GUICtrlSetData($Status, "Status: Warte auf eingabe...")
FileClose($fcl1)
#cs
;~ For $for = 1 To $ss[0]
MsgBox(0,"",$sscrlf[$for]&" "&$sscrlf[0]&" "&$ss[$for])
$adressesEmail = StringSplit($ss[$for]," Email:")
MsgBox(0,"",$adressesEmail)
;~ _sendEmail()
Next
#ce
EndSelect
WEnd
Exit
#endregion --- GuiBuilder generated code End ---
Func _sendEmail($tAdrr,$fAdrr,$uSubj,$mMess,$sServer="post.strato.de",$aFile=0)
If $aFile = 0 Then
$aFile = ""
Else
$aFile = " -a """&$aFile&""
EndIf
$fAdrr = " -f """&$fAdrr&'" '
$tAdrr = " -t """&$tAdrr&'" '
$uSubj = " -u """&$uSubj&'" '
$mMess = " -m """&$mMess&'" '
$sServer = " -s "&$sServer
RunWait(@TempDir & '\sendEmail.exe ' &$fAdrr&$tAdrr&$sServer&$uSubj&$mMess&$aFile, "", @SW_HIDE)
EndFunc
Func OnAutoItExit()
FileDelete(@TempDir & '\sendEmail.exe')
EndFunc
Alles anzeigen
Edit: So! Volkommen geupdatet