Problembeschreibung: Der Inhalt der Emails im gmx-Postfach soll in Abhängigkeit des Absenders ausgelesen werden.
Func GMXeMailsAbfragen($username, $password, $absender)
[/autoit][autoit][/autoit][autoit]; Erstellt eine Instanz (neues Fenster) des InternetExplorers und gibt ein entsprechendes Objekt zurück.
[/autoit][autoit][/autoit][autoit]Local $oGMX = _IECreate ("http://www.gmx.net/")
[/autoit][autoit][/autoit][autoit]; warten bis die Seite komplett geladen wurde
[/autoit][autoit][/autoit][autoit]_IELoadWait($oGMX)
[/autoit][autoit][/autoit][autoit]; gesuchtes Formular für Login
[/autoit][autoit][/autoit][autoit]Local $oForm = _IEGetObjById($oGMX, "formLoginFreemail")
[/autoit][autoit][/autoit][autoit]; Erzeugen eines Formularfeld-Objekts mit Hilfe des Feldnamens
[/autoit][autoit][/autoit][autoit]Local $oUsername = _IEFormElementGetObjByName($oForm, "id")
[/autoit][autoit][/autoit][autoit]; Setzen des Formularfeldinhalts
[/autoit][autoit][/autoit][autoit]_IEFormElementSetValue($oUsername, $username)
[/autoit][autoit][/autoit][autoit]; Erzeugen eines Formularfeld-Objekts mit Hilfe des Feldnamens
[/autoit][autoit][/autoit][autoit]Local $oPasswd = _IEFormElementGetObjByName($oForm, "p")
[/autoit][autoit][/autoit][autoit]; Setzen des Formularfeldinhalts
[/autoit][autoit][/autoit][autoit]_IEFormElementSetValue($oPasswd, $password)
[/autoit][autoit][/autoit][autoit]; Absenden des Formulars
[/autoit][autoit][/autoit][autoit]_IEFormSubmit($oForm, 0)
[/autoit][autoit][/autoit][autoit]_IELoadWait($oGMX)
[/autoit][autoit][/autoit][autoit][/autoit][autoit][/autoit][autoit]; Die Links befinden sich im ersten Frame des Browserfensters
[/autoit][autoit][/autoit][autoit]$oGMXFrame = _IEFrameGetCollection ($oGMX, 0)
[/autoit][autoit][/autoit][autoit][/autoit][autoit][/autoit][autoit]; navigiere zum Mailordner und öffne eMail
[/autoit][autoit][/autoit][autoit]_IELinkClickByText($oGMXFrame, "Mein GMX")
[/autoit][autoit][/autoit][autoit]_IELinkClickByPartText($oGMXFrame, "ungelesene E-Mail")
[/autoit][autoit][/autoit][autoit]_IELinkClickByText($oGMXFrame, $absender)
[/autoit][autoit][/autoit][autoit][/autoit][autoit][/autoit][autoit]; email auslesen
[/autoit][autoit][/autoit][autoit]Local $oGMXFrameMail = _IEFrameGetCollection($oGMXFrame,1)
[/autoit][autoit][/autoit][autoit]MsgBox(0,"Text",_IEBodyReadText($oGMXFrameMail))
[/autoit][autoit][/autoit][autoit]EndFunc
[/autoit][autoit][/autoit][autoit][/autoit][autoit][/autoit][autoit][/autoit][autoit][/autoit][autoit]; von mir adaptierte version von _IELinkClickByText
[/autoit][autoit][/autoit][autoit]Func _IELinkClickByPartText(ByRef $o_object, $s_linkText, $i_index = 0, $f_wait = 1)
[/autoit][autoit][/autoit][autoit]If Not IsObj($o_object) Then
[/autoit][autoit][/autoit][autoit]__IEErrorNotify("Error", "_IELinkClickByText", "$_IEStatus_InvalidDataType")
[/autoit][autoit][/autoit][autoit]Return SetError($_IEStatus_InvalidDataType, 1, 0)
[/autoit][autoit][/autoit][autoit]EndIf
[/autoit][autoit][/autoit][autoit];
[/autoit][autoit][/autoit][autoit]Local $found = 0, $linktext, $links = $o_object.document.links
[/autoit][autoit][/autoit][autoit]$i_index = Number($i_index)
[/autoit][autoit][/autoit][autoit]For $link In $links
[/autoit][autoit][/autoit][autoit]$linktext = $link.outerText & "" ; Append empty string to prevent problem with no outerText (image) links
[/autoit][autoit][/autoit][autoit]If StringInStr($linktext , $s_linkText) Then
[/autoit][autoit][/autoit][autoit]If ($found = $i_index) Then
[/autoit][autoit][/autoit][autoit]$link.click
[/autoit][autoit][/autoit][autoit]If $f_wait Then
[/autoit][autoit][/autoit][autoit]_IELoadWait($o_object)
[/autoit][autoit][/autoit][autoit]Return SetError(@error, 0, -1)
[/autoit][autoit][/autoit][autoit]EndIf
[/autoit][autoit][/autoit][autoit]Return SetError($_IEStatus_Success, 0, -1)
[/autoit][autoit][/autoit][autoit]EndIf
[/autoit][autoit][/autoit][autoit]$found = $found + 1
[/autoit][autoit][/autoit][autoit]EndIf
[/autoit][autoit][/autoit][autoit]Next
[/autoit][autoit][/autoit][autoit]__IEErrorNotify("Warning", "_IELinkClickByText", "$_IEStatus_NoMatch")
[/autoit][autoit][/autoit][autoit]Return SetError($_IEStatus_NoMatch, 0, 0) ; Could be caused by parameter 2, 3 or both
[/autoit][autoit][/autoit][autoit]EndFunc
[/autoit][autoit][/autoit][autoit][/autoit]an der stelle
[autoit][/autoit][autoit][/autoit][autoit]; email auslesen
[/autoit][autoit][/autoit][autoit]Local $oGMXFrameMail = _IEFrameGetCollection($oGMXFrame,1)
[/autoit][autoit][/autoit][autoit]MsgBox(0,"Text",_IEBodyReadText($oGMXFrameMail))
[/autoit][autoit][/autoit][autoit][/autoit]Gibt mir Scite folgende Fehlermeldung zurück und das Programm terminiert -.-
[...]\Include\IE.au3 (1964) : ==> The requested action with this object has failed.:
Return SetError($_IEStatus_Success, 0, $o_object.document.body.innerText)
Return SetError($_IEStatus_Success, 0, $o_object.document^ ERROR
->22:30:29 AutoIT3.exe ended.rc:1
Bis jetzt verwende ich folgenden workaround:
[autoit][/autoit][autoit][/autoit][autoit]Local $oGMXMail
[/autoit][autoit][/autoit][autoit]Local $iframes = _IETagNameGetCollection($oGMXFrame, "iframe")
[/autoit][autoit][/autoit][autoit]For $iframe in $iframes
[/autoit][autoit][/autoit][autoit]If StringInStr($iframe.src, "http://www.gmxattachments.net/") Then
[/autoit][autoit][/autoit][autoit]$oGMXMail = _IECreate($iframe.src)
[/autoit][autoit][/autoit][autoit]ExitLoop
[/autoit][autoit][/autoit][autoit]EndIf
[/autoit][autoit][/autoit][autoit]Next
[/autoit][autoit][/autoit][autoit][/autoit]Hat von euch jemand eine Idee warum der Code nicht so funktioniert, wie er sollte? Vielen dank schonmal an alle die sich daran versuchen
Viele Grüße Zim