[Blockierte Grafik: http://www.autoit.de/file:///C:/Users/Johannes/AppData/Local/Temp/moz-screenshot.jpg]Hi Community,
hier ein Script mit dem sich ein Emailpostfach für 10 Minuten anlegen lässt. Es ist ideal um z.B. Registrationen abzuschließen die später, weitere Werbung fordert. Ihr werdet das bestimmt kennen...
Ihr bekommt jeweils eine generierte Email, die nach 10 Minuten ausläuft, verlängert ihr diese nicht. Bei eintreffenden Email, werdert Ihr benachrichtigt (TrayTip). Ein Doppelklick auf eine Email im ListView und ihr seht die komplette Email. Eine geöffnete Email wird automatisch im Emails-Ordner gespeichert.
Aktuelle Version: 0.2
Neu:
* Der Benutzer kann die Option "Emailadresse automatisch verlängern" anwählen, somit wird dir Gültigkeitszeit der Emailadresse, alle Minute wieder auf 10 Minuten erhöht
* "verlängern"-Button gefixt
Screenshot:
[Blockierte Grafik: http://img593.imageshack.us/img593/4402/emailcreator.png]
Script:
Spoiler anzeigen
#include <GUIConstantsEx.au3>
#include <Inet.au3>
#include <string.au3>
#include <array.au3>
#include <EditConstants.au3>
#include <IE.au3>
#include <Date.au3>
#include <GuiListView.au3>
#include <StructureConstants.au3>
#include <WindowsConstants.au3>
#include <File.au3>
Global $sWindowTitel = "Email Creator 0.1 - by Jautois - Emails: "
Global $sTempSource
Global $sUrl = "http://10minutemail.com/10MinuteMail/index.html"
Global $iEmailCount = 0
Global $iTempMessages = 0
Global $sMoreTimeLink
Global $oIE
Global $sEmail[1000]
Global $sEmailFrom[1000]
Global $sEmailSource[1000]
Global $bEmailCheck[1000]
Global $sEmailSource[1000]
Global $sEmailDate[1000]
Global $sEmailSubject[1000]
Global $sEmailData[1000]
Dim $aColor[3] = [0x008000, "0xFB8E03", "0xF91905"]
TraySetIcon("Shell32.dll", -157)
[/autoit] [autoit][/autoit] [autoit]If Not FileExists(@ScriptDir & "\EMails") Then
DirCreate(@ScriptDir & "\EMails")
EndIf
Ping("www.google.de")
If @error Then
MsgBox(16, "Info", "Keine Internetverbindung!" & @CRLF & "Das Programm wird in 5 Sekunden beendet!", 5)
Exit
Else
Ping("www.10minutemail.com")
If @error Then
MsgBox(16, "Info", "Der Onlinedienst ist nicht erreichbar!" & @CRLF & "Das Programm wird in 5 Sekunden beendet!", 5)
Exit
EndIf
EndIf
$sSource = _INetGetSource($sUrl)
[/autoit] [autoit][/autoit] [autoit]$sTemp = _StringBetween($sSource, "<br />", " is your")
$sOwnEmail = $sTemp[0]
$sTemp = _StringBetween($sSource, "Your e-mail address will expire in ", " minut")
$iExpireTime = $sTemp[0]
$hMainWindow = GUICreate($sWindowTitel, 470, 370, Default, Default, BitOR($WS_EX_TOOLWINDOW, $WS_EX_WINDOWEDGE))
GUISetBkColor(0x808080)
GUISetIcon("Shell32.dll", -157)
WinSetTitle($sWindowTitel, "", $sWindowTitel & "0")
GUICtrlCreateLabel("Email:", 8, 16, 47, 20)
GUICtrlSetFont(-1, 10, 800, 0, "MS Sans Serif")
$pInputEmail = GUICtrlCreateInput($sOwnEmail, 56, 14, 129, 21, BitOR($ES_AUTOHSCROLL, $ES_READONLY))
GUICtrlCreateLabel("Verfügbar:", 208, 16, 76, 20)
GUICtrlSetFont(-1, 10, 800, 0, "MS Sans Serif")
$pLabelExpireTime = GUICtrlCreateLabel($iExpireTime & " Minuten", 283, 16, 77, 20)
GUICtrlSetFont(-1, 10, 800, 0, "MS Sans Serif")
GUICtrlSetColor(-1, $aColor[0])
$pButtonMoreTime = GUICtrlCreateButton("verlängern", 368, 12, 89, 25, 0)
GUICtrlSetState(-1, $GUI_DISABLE)
$ListView1 = GUICtrlCreateListView("Absender|Betreff|Datum", 8, 48, 449, 249)
GUIRegisterMsg(0x004E, "_DoubleClickOnListView")
GUICtrlSendMsg(-1, 0x101E, 0, 155)
GUICtrlSendMsg(-1, 0x101E, 1, 162)
GUICtrlSendMsg(-1, 0x101E, 2, 128)
$pButtonExit = GUICtrlCreateButton("Beenden", 320, 304, 137, 33)
$pButtonUpdate = GUICtrlCreateButton("Update", 8, 304, 145, 33)
GUISetState(@SW_SHOW, $hMainWindow)
$hEmailWindow = GUICreate("Email", 665, 555, Default, Default, BitOR($WS_EX_TOOLWINDOW, $WS_EX_WINDOWEDGE))
_IEErrorHandlerRegister()
$oIEE = _IECreateEmbedded()
$pActiveX1 = GUICtrlCreateObj($oIEE, 8, 12, 641, 465)
$pButtonClose = GUICtrlCreateButton("Schließen", 504, 488, 145, 33)
GUISetState(@SW_HIDE, $hEmailWindow)
AdlibEnable("_Email", 5000)
[/autoit] [autoit][/autoit] [autoit]While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $pButtonExit
Exit
Case $pButtonMoreTime
_MoreTime()
Case $pButtonClose
GUISetState(@SW_HIDE, $hEmailWindow)
Case $pButtonUpdate
_CreateUpdateGUI("Updates", "http://bbs07.spacequadrat.de/EmailCreator/data.txt", "http://bbs07.spacequadrat.de/EmailCreator/")
EndSwitch
WEnd
Func _Email()
$sTempSource = _INetGetSource($sUrl)
$sTemp = _StringBetween($sTempSource, "You currently have ", " messag")
$iMessages = $sTemp[0]
If $iMessages > $iTempMessages Then
$iEmailCount = $iEmailCount + 1
_PlaySystemSound("MailBeep", True)
TrayTip("Neue Email(s)!", " ", 5, 1)
EndIf
WinSetTitle($sWindowTitel, "", $sWindowTitel & $iMessages)
[/autoit] [autoit][/autoit] [autoit]$sTempSplitSource = _StringBetween($sTempSource, "<tbody>", "</tbody>")
$sSplitSource = StringSplit($sTempSplitSource[0], '<td><input type="checkbox" name="', 1)
If $sSplitSource[0] = 1 Then
;-
Else
For $i = 0 To $iMessages - 1
If $bEmailCheck[$i] <> True Then
$sTemp = _StringBetween($sSplitSource[$i + 2], 'disabled="disabled" /></td>', '<td><a href="/10MinuteMail/index.html?')
$sEmail[$i] = StringTrimRight(StringTrimLeft($sTemp[0], 9), 6)
$sTemp = _StringBetween($sSplitSource[$i + 2], '<td><a href="', '" id="')
$sEmailSource[$i] = _INetGetSource("http://10minutemail.com" & StringReplace($sTemp[0], "amp;", "&", 1))
$sTemp = _StringBetween($sEmailSource[$i], '<div style="clear:both"></div>', '<!--')
$sEmailData[$i] = $sTemp[0]
$tCur = _Date_Time_GetLocalTime()
$sEmailDate[$i] = _DateToMonth(@MON) & " " & @MDAY & ", " & @YEAR & " " & StringTrimLeft(_Date_Time_SystemTimeToDateTimeStr($tCur), 11)
$sTemp = _StringBetween($sSplitSource[$i + 2], 'j_id35">', '</a>')
$sEmailSubject[$i] = $sTemp[0]
GUICtrlCreateListViewItem($sEmail[$i] & "|" & $sEmailSubject[$i] & "|" & $sEmailDate[$i], $ListView1)
[/autoit] [autoit][/autoit] [autoit]$bEmailCheck[$i] = True
[/autoit] [autoit][/autoit] [autoit]EndIf
Next
EndIf
$sTemp = _StringBetween($sTempSource, "Your e-mail address will expire in ", " minut")
$iExpireTime = $sTemp[0]
If $iExpireTime = 0 Then
_PlaySystemSound("SystemExclamation", True)
MsgBox(64, "Info", "Die Verfügbarkeit der Email ist abgelaufen!" & @CRLF & "Das Programm wird in 3 Sekunden geschlossen.", 3)
Exit
EndIf
If $iExpireTime < 10 Then
GUICtrlSetState($pButtonMoreTime, $GUI_ENABLE)
Else
GUICtrlSetState($pButtonMoreTime, $GUI_DISABLE)
EndIf
GUICtrlSetData($pLabelExpireTime, $iExpireTime & " Minuten")
If $iExpireTime >= 7 Then
GUICtrlSetColor($pLabelExpireTime, $aColor[0])
ElseIf $iExpireTime >= 4 And $iExpireTime <= 6 Then
GUICtrlSetColor($pLabelExpireTime, $aColor[1])
ElseIf $iExpireTime <= 3 Then
GUICtrlSetColor($pLabelExpireTime, $aColor[2])
EndIf
$iTempMessages = $iMessages
[/autoit] [autoit][/autoit] [autoit]EndFunc ;==>_Email
[/autoit] [autoit][/autoit] [autoit]Func _MoreTime()
[/autoit] [autoit][/autoit] [autoit]_IELinkClickByIndex($oIE, 2)
[/autoit] [autoit][/autoit] [autoit]EndFunc ;==>_MoreTime
[/autoit] [autoit][/autoit] [autoit]Func _InsertEmailData($iFuncIndex = "")
Local $sTempPath = @ScriptDir & "\EMails\E-Mail_" & _DateToMonth(@MON) & "-" & @MDAY & "-" & @YEAR & "[Time " & @HOUR & "." & @MIN & "." & @SEC & "].html"
GUISetState(@SW_SHOW, $hEmailWindow)
$sEmailHeader = "Von: " & $sEmail[$iFuncIndex] & "<br />" & "Betreff: " & $sEmailSubject[$iFuncIndex] & "<br />" & "<br />" & $sEmailData[$iFuncIndex]
FileWrite($sTempPath, $sEmailHeader)
_IENavigate($oIEE, $sTempPath, $sEmailHeader)
EndFunc ;==>_InsertEmailData
[/autoit] [autoit][/autoit] [autoit]Func _DoubleClickOnListView($hWndGUI, $MsgID, $wParam, $lParam)
Local $tagNMHDR, $event, $hwndFrom, $code
$tagNMHDR = DllStructCreate("int;int;int", $lParam)
If @error Then Return
$event = DllStructGetData($tagNMHDR, 3)
If $wParam = $ListView1 Then
If $event = $NM_DBLCLK Then
_InsertEmailData(_GUICtrlListView_GetSelectedIndices($ListView1))
EndIf
EndIf
$tagNMHDR = 0
$event = 0
$lParam = 0
EndFunc ;==>_DoubleClickOnListView
[/autoit] [autoit][/autoit] [autoit]Func _PlaySystemSound($sSoundName, $bAsync = False)
Local Const $SND_ALIAS = 0x10000
Local Const $SND_ASYNC = 0x1
Local $flags
$flags = $SND_ALIAS
If $bAsync Then $flags = BitOR($flags, $SND_ASYNC)
DllCall('winmm.dll', 'int', 'PlaySoundA', 'str', $sSoundName, 'int', 0, 'int', $flags)
EndFunc ;==>_PlaySystemSound
Func _CreateUpdateGUI($sWindowTitel, $sDataTextPathOnServer, $sFilePathOnServer)
Local $sTempData, $iPercent = 0
$hWindow = GUICreate($sWindowTitel, 475, 355, Default, Default, BitOR($WS_EX_TOOLWINDOW, $WS_EX_WINDOWEDGE))
GUISetBkColor(0xBFCDDB)
GUISetIcon(@SystemDir & "\shell32.dll", -14)
$pDlProgress = GUICtrlCreateProgress(72, 24, 390, 25)
GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
$pInternetIcon = GUICtrlCreateIcon(@SystemDir & "\shell32.dll", -136, 20, 20)
$pInternetErrorIcon = GUICtrlCreateIcon(@SystemDir & "\shell32.dll", -220, 20, 20)
GUICtrlSetState($pInternetErrorIcon, $GUI_HIDE)
$pArrIcon = GUICtrlCreateIcon(@SystemDir & "\shell32.dll", -268, 74, 50)
$pListView = GUICtrlCreateListView("Dateiname|Version|Größe|Autor", 8, 80, 455, 201)
GUICtrlSendMsg(-1, 0x101E, 0, 150)
GUICtrlSendMsg(-1, 0x101E, 1, 100)
GUICtrlSendMsg(-1, 0x101E, 2, 100)
GUICtrlSendMsg(-1, 0x101E, 3, 100)
$pButtonDL = GUICtrlCreateButton("Download", 200, 288, 129, 33, 0)
$pButtonExit2 = GUICtrlCreateButton("Schließen", 334, 288, 129, 33, 0)
$pLabelInfo = GUICtrlCreateLabel("", 100, 60, 340, 17)
$pCheckboxDirOpen = GUICtrlCreateCheckbox("Ordner nach Download öffnen", 8, 288, 185, 17)
$pCheckboxProClose = GUICtrlCreateCheckbox("Programm nach Download schließen", 8, 304, 190, 17)
GUISetState(@SW_SHOW)
Ping("www.google.de")
If @error Then
GUICtrlSetState($pInternetErrorIcon, $GUI_SHOW)
GUICtrlSetData($pLabelInfo, "Keine Internetverbindung!")
Else
InetGet($sDataTextPathOnServer, @TempDir & "\data.txt", 1)
[/autoit] [autoit][/autoit] [autoit]_FileReadToArray(@TempDir & "\data.txt", $sTempData)
[/autoit] [autoit][/autoit] [autoit]GUICtrlSetData($pLabelInfo, "Informationen werden heruntergeladen ...")
[/autoit] [autoit][/autoit] [autoit]Dim $iDataFileSize[$sTempData[0] + 1]
[/autoit] [autoit][/autoit] [autoit]For $i = 1 To $sTempData[0]
$iPercent = $iPercent + (100 / $sTempData[0])
$sTempDataForRow = StringSplit($sTempData[$i], ",")
$iDataFileSize[$i] = Round(InetGetSize($sFilePathOnServer & $sTempDataForRow[1]) / 1000)
$ListView1_0 = GUICtrlCreateListViewItem($sTempDataForRow[1] & "|" & $sTempDataForRow[2] & "|" & $iDataFileSize[$i] & " KB|" & $sTempDataForRow[3], $pListView)
GUICtrlSetData($pDlProgress, $iPercent)
Next
$iPercent = 0
GUICtrlSetData($pDlProgress, $iPercent)
GUICtrlSetData($pLabelInfo, "Informationen heruntergeladen!")
EndIf
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
ExitLoop
Case $pButtonDL
$iTempIndex = _GUICtrlListView_GetSelectedIndices($pListView, True)
If $iTempIndex[0] = 0 Then
MsgBox(64, "Info", "Bitte eine Datei auswählen!")
Else
$sNameSelectedFile = _GUICtrlListView_GetItemText($pListView, $iTempIndex[1])
GUICtrlSetData($pLabelInfo, $sNameSelectedFile & " wird heruntergeladen")
$sSaveFilePath = FileSelectFolder("Speichern unter ... ", @DesktopDir, 7, @DesktopDir)
If @error = 1 Then
;-
Else
InetGet($sFilePathOnServer & $sNameSelectedFile, $sSaveFilePath & "\" & $sNameSelectedFile, 1, 1)
While @InetGetActive
GUICtrlSetData($pDlProgress, (@InetGetBytesRead / $iDataFileSize[$iTempIndex[1] + 1] / 10))
GUICtrlSetData($pLabelInfo, "Download: " & $sNameSelectedFile & " - " & Int(@InetGetBytesRead / 1000) & "/" & $iDataFileSize[$iTempIndex[1] + 1] & " KB - " & Int((@InetGetBytesRead / $iDataFileSize[$iTempIndex[1] + 1] / 10)) & " %")
Sleep(100)
WEnd
GUICtrlSetData($pDlProgress, 100)
GUICtrlSetData($pLabelInfo, "Fertig geladen!")
EndIf
EndIf
Case $pButtonExit2
GUISetState(@SW_HIDE, $hWindow)
ExitLoop
EndSwitch
WEnd
GUISwitch($hMainWindow)
EndFunc ;==>_CreateUpdateGUI
Anmerkungen:
- Der "verlängern"-Button wird erst aktiv, wenn die Zeit unter 9 Minuten sinkt
- Zum Lesen der kompletten Email -> doppelt auf den ListVieweintrag klicken
- Eine Email geöffnet -> so wird automatisch im Ordner "EMails" im Scriptpfad eine *.html Datei erstellt mit allen Emailinfos
Mfg Jautois