1. Dashboard
  2. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team
    4. Mitgliedersuche
  3. Forenregeln
  4. Forum
    1. Unerledigte Themen
  • Anmelden
  • Registrieren
  • Suche
Alles
  • Alles
  • Artikel
  • Seiten
  • Forum
  • Erweiterte Suche
  1. AutoIt.de - Das deutschsprachige Forum.
  2. Mitglieder
  3. gmmg

Beiträge von gmmg

  • Access mit UDF Access.au3

    • gmmg
    • 21. Oktober 2016 um 07:55

    Hallo wuff100 :)

    in meinen Beispielen ist doch alles erklärt, da brauchst du die Access.au3 überhaupt nicht.
    Sende mir doch mal deinen Quelltext oder Poste den hier. Eventuell ist es nur ein Formatierungsfehler.

    Gruß gmmg

  • Access mit UDF Access.au3

    • gmmg
    • 19. Oktober 2016 um 07:55

    Hallo wuff100,

    wir benutzen auch Access 2010. Den Quelltext den ich oben angegeben habe funktioniert jeweils mit mdb und accdb Datenbanken.

    Gruß gmmg

  • Access mit UDF Access.au3

    • gmmg
    • 18. Oktober 2016 um 14:29

    Das sollte die richtige sein, die ich auch nutze.

    Bei den Beispielen nutze ich die UDF nicht. Habe das jeweils als Funktion in das Script eingebunden, weil das so funktioniert :)
    In dieser sehe ich aber auch die Variable $ReadOnly in der _AccessOpen bzw. _AccessOpenDB Funktion.

    Der Export in die andere DB erfolgt über eine Tabellenerstellungsabfrage, welche per Macro dann ausgeführt wird. Was hast du denn für eine Access version, da dies etwas unterschiedlich ist.

    SELECT [01_MA].MAName, [01_MA].MAVorname, [01_MA].PC, [01_MA].SANI INTO 01_MA IN 'Z:\Share\DB_Mitarbeiter_CC\mitarbeiter_SANI.mdb' (die mitarbeiter_SANI.mdb sollte leer vorhanden sein.)
    FROM 01_MA
    WHERE [01_MA].SANI<>"";

    Hier auch nochmal ein Beispiel, wie man in eine Access DB schreiben kann. Einfach über den Query Befehl.

    AutoIt
    $dbname = "d:\test.accdb"
    
    
    _access_write($dbname)
    
    
    Func _access_write($dbname)
    
    
    	$adoCon = ObjCreate("ADODB.Connection")
        $adoCon.Open("Provider=Microsoft.ACE.OLEDB.12.0; Data Source=" & $dbname & ";")
    	$adoRs = ObjCreate("ADODB.Recordset")
    
    
    	;$adocon = ObjCreate("ADODB.Connection")
    	;$adocon.open("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & $dbname)
    	;$adors = ObjCreate("ADODB.Recordset")
    
    
    	Local $sQuery = "INSERT INTO TB1 (`Name`,`Vorname`) VALUES ('Meier','Wolfgang')"
    	;Local $sQuery = 'UPDATE TB1 SET [01_MA].SID = "' & $sid  & '" WHERE [01_MA].PC = "' & $ssamaccountname & '"'
    	$adoCon.Execute($sQuery)
    	$adoCon.Close
    
    
    EndFunc
    Alles anzeigen


    Gruß gmmg :)

    Dateien

    Access.au3 56,23 kB – 386 Downloads
  • Emailkonten: Abfrage in gewünschter Reihenfolge. <-- Erledigt

    • gmmg
    • 18. Oktober 2016 um 13:56

    Ich hab es nicht im Einsatz, aber einer der Accounts ist ja als Default hinterlegt, eventuell kann man hier etwas beeinflussen.

    https://www.digitalunite.com/guides/email/h…ndows-live-mail

    Per Registry kann man eventuell auch etwas setzen.

    gruß gmmg

  • Access mit UDF Access.au3

    • gmmg
    • 18. Oktober 2016 um 11:33

    Anbei mal ein Beispiel :)

    mdb

    AutoIt
    #include "Access.au3"
    
    
    ;--------- Modify the variables below as desired or applicable -------
    $dbname = "\\Server\mitarbeiter.mdb"
    $tblname = "TBname1"
    $fldname01 = "Feld1"
    $format = "Text(50)"
    $fldname02 = "PCName"
    $format = "Text(50)"
    
    
    $query = "SELECT * FROM " & $tblname & " WHERE PCName = " & "'" & @ComputerName & "'"
    
    
    $strData = _ReadOneFld($query, $dbname, $fldname01)
    
    
    MsgBox(0,"", $strData)
    
    
    ;$adoCon.Open("Driver={Microsoft Access Driver (*.mdb, *.accdb)}; DBQ=" & $dbname & ";Uid=;Pwd=;")
    
    
    ;------access DB auslesen -------------
    Func _ReadOneFld($_sql, $_dbname, $_field)
    	Dim $_output
    	$adoCon = ObjCreate("ADODB.Connection")
    
    
    	;$adoCon.Open("Driver={Microsoft Access Driver (*.mdb, *.accdb)}; DBQ=" & $_dbname & ";Uid=;Pwd=;")
    	;$adoCon.Open("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & $_dbname)
    	;$AdoCon.Open ("Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & $_dbname);
    	$adoCon.Open ("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & $_dbname)
    	;$adoCon.Open("Provider=Microsoft.ACE.OLEDB.12.0; Data Source=" & $dbname & ";")
    	$adoRs = ObjCreate("ADODB.Recordset")
    	$adoRs.CursorType = 1
    	$adoRs.LockType = 1
    	$adoRs.Open($_sql, $adoCon)
    
    
    	With $adoRs
    		If .RecordCount Then
    			While Not .EOF
    				$_output = $_output & .Fields($_field).Value & @CRLF
    				.MoveNext
    			WEnd
    		EndIf
    	EndWith
    	$adoCon.Close
    	Return $_output
    EndFunc   ;==>_ReadOneFld
    Alles anzeigen

    hab ich grad so aus dem jeweiligen script kopiert, ist daher nicht bereinigt :)
    accdb

    AutoIt
    ;--------- Modify the variables below as desired or applicable -------
    	$dbname = @ScriptDir & "\Helpdesk.accdb"
    	$tblname1 = "Systeme"
    	$fldname1_1 = "ID"
    	$fldname1_2 = "System"
    	$tblname2 = "Systemfehler"
    	$fldname2_1 = "ID"
    	$fldname2_2 = "System"
    	$fldname2_3 = "Fehler"
    	$fldname2_4 = "Email"
    	$fldname2_5 = "Feld1"
    	$fldname2_6 = "Feld2"
    	$fldname2_7 = "Feld3"
    	$fldname2_8 = "Feld4"
    	$fldname2_9 = "EmailBCC"
    	$query = "SELECT * FROM " & $tblname2 & " WHERE System = " & "'" & $gda & "'" & " and Fehler ='|" & $text_selected & "'"
    	If $gda <> "" Then
    		;$Feld1 = _ReadOneFld_WIN7($query, $dbname, $fldname2_1)
    		;$Feld2 = _ReadOneFld_WIN7($query, $dbname, $fldname2_2)
    		$Feld3 = _ReadOneFld_WIN7($query, $dbname, $fldname2_3)
    		$Feld4 = _ReadOneFld_WIN7($query, $dbname, $fldname2_4)
    		$Feld5 = _ReadOneFld_WIN7($query, $dbname, $fldname2_5); Feld1
    		$Feld6 = _ReadOneFld_WIN7($query, $dbname, $fldname2_6)
    		$Feld7 = _ReadOneFld_WIN7($query, $dbname, $fldname2_7)
    		$Feld8 = _ReadOneFld_WIN7($query, $dbname, $fldname2_8)
    Func _ReadOneFld($_sql, $_dbname, $_field)
    	Dim $_output
    	$adoCon = ObjCreate("ADODB.Connection")
    	$adoCon.Open("Provider=Microsoft.ACE.OLEDB.12.0; Data Source=" & $_dbname)
    	;$adoCon.Open("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & $_dbname)
    	$adoRs = ObjCreate("ADODB.Recordset")
    	$adoRs.CursorType = 1
    	$adoRs.LockType = 3
    	$adoRs.Open($_sql, $adoCon)
    	With $adoRs
    		If .RecordCount Then
    			While Not .EOF
    				$_output = $_output & .Fields($_field).Value & @CRLF
    				.MoveNext
    			WEnd
    		EndIf
    	EndWith
    	$adoCon.Close
    	Return $_output
    EndFunc   ;==>_ReadOneFld
    Alles anzeigen


    gruß gmmg

  • Access mit UDF Access.au3

    • gmmg
    • 18. Oktober 2016 um 08:25

    Hallo wuff100 :)

    ich benutze die Access.udf auch schon einige Jahre im Livebetrieb.

    Hast du mal geschaut in welchem LockTyp die geöffnet werden? Siehe Beispiel ...

    https://msdn.microsoft.com/en-us/library/…(v=bts.10).aspx

    Ich benutze jeweils immer eine Haupt DB in der alle Daten gepflegt werden und erstelle daraus dann per Macro die DB's für die User.

    AutoIt
    ;------access DB auslesen -------------
    Func _ReadOneFld($_sql, $_dbname, $_field)
    	Dim $_output
    	$adoCon = ObjCreate("ADODB.Connection")
    	$adoCon.Open("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & $_dbname)
    	$adoRs = ObjCreate("ADODB.Recordset")
    	$adoRs.CursorType = 1
    	$adoRs.LockType = 3
    	$adoRs.Open($_sql, $adoCon)
    
    
    	With $adoRs
    		If .RecordCount Then
    			While Not .EOF
    				$_output = $_output & .Fields($_field).Value & @CRLF
    				.MoveNext
    			WEnd
    		EndIf
    	EndWith
    	$adoCon.Close
    	Return $_output
    EndFunc   ;==>_ReadOneFld
    Alles anzeigen

    Gruß gmmg

  • Email Attachment extrahieren - per POP3 TXT filtern und in Variable übernehmen

    • gmmg
    • 12. Oktober 2016 um 14:15

    das Autoit Script läuft noch nicht produktiv, aber im testmodus, hier wird ein Exchange Postfach wird per POP3 abgeholt.

    im prinzip wird ja die ganze Mail gelesen. im Abschnitt .... $mail = _Pop3Retr($aMsgNum[1]) , hier steht ja die Mail dann in der Variable $mail, wird aber nach dem Filenamen und Attachment gefilter.
    Danach erfolgt das Extrahieren.

    Ich habe ja die pop3_Mail.au3 benutzt und entsprechend abgeändert, da diese noch eine GUI hatte.
    Kannst du ja mal testen, da siehst du vielleicht besser wie es funktioniert. SSL geht aber noch nicht, da müsste man noch OpenSLL einbinden.

    Gruß gmmg

    Dateien

    pop3_Mail.au3 4,77 kB – 242 Downloads
  • Email Attachment extrahieren - per POP3 TXT filtern und in Variable übernehmen

    • gmmg
    • 12. Oktober 2016 um 12:17

    Hallo Peter,

    wir bekommen per Mail von einem Kunden Emails mit jeweils einem Anhang (gezippte Excel Dateien). Diese werden dann per Script Extrahiert und danach automatisch weiterverarbeitet :)
    Für die entsprechende Emailadresse wird ist ein seperates Konto benutzt, was dann per POP abgefragt wird.

    Gruß gmmg

  • Radiobuttons die in einer Schleife erstellt wurden

    • gmmg
    • 11. Oktober 2016 um 14:48

    Der Post ist zwar schon älter, aber vielleicht braucht das nochmal jemand ein Beispiel zum erzeugen dynamischer RadioButtons und der Abfrage, welcher Button Checked ist.

    AutoIt
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #Include <Array.au3>
    
    
    Local $aArray[8]
    $aArray[0] = "8"
    $aArray[1] = "Test1"
    $aArray[2] = "Test2"
    $aArray[3] = "Test3"
    $aArray[4] = "Test4"
    $aArray[5] = "Test5"
    $aArray[6] = "Test6"
    $aArray[7] = "Test7"
    
    
    
    
    Local $aRadio_array[0]
    
    
    $Member = GUICreate("RadioButton", 310, 30*$aArray[0] +60)
    
    
    $top = 30
    
    
    For $i = 1 To $aArray[0]-1
            $aRadio = GUICtrlCreateRadio($aArray[$i], 40, $top, 150, 20)
    		;MsgBox(0,"", $aRadio)
    		_ArrayAdd($aRadio_array,$aRadio)
            $top += 30
    Next
    
    
    $Button = GUICtrlCreateButton("Test", 40, $top+10, 108, 25, $WS_GROUP)
    
    
    GUISetState(@SW_SHOW)
    
    
    
    
    While 1
    	$nMsg = GUIGetMsg()
    	Switch $nMsg
    		Case $GUI_EVENT_CLOSE
    			Exit
    
    
    		Case $Button
    
    
    			For $i = 0 to UBound($aRadio_array)-1
    
    
    				$Checked = GUICtrlRead($aRadio_array[$i])
    				$Checked_wert = GUICtrlRead($aRadio_array[$i],1)
    
    
    				IF $Checked = 1 Then
    					MsgBox(0,"","RadioButton " & $Checked_wert)
    
    
    				EndIf
    			Next
    
    
    	EndSwitch
    WEnd
    Alles anzeigen

    Gruß gmmg

  • Email Attachment extrahieren - per POP3 TXT filtern und in Variable übernehmen

    • gmmg
    • 10. Oktober 2016 um 11:07

    hallo zusammen,

    habe das Decodieren des Files jetzt mal über die ein externes Tool realisiert. Geht gefühlt schneller, bei 7 MB Anhang dauert das Extrahieren aus der mail aber trotzdem 4-5 Minuten.

    http://www.proxoft.com/base64.aspx

    Dafür habe ich die folgende Funktion geändert...


    AutoIt
    Func _attachment_export($filename,$string)
    
    
    	If FileExists(@ScriptDir & "\temp.txt") Then FileDelete(@ScriptDir & "\temp.txt")
    	FileWrite(@ScriptDir & "\temp.txt", $string)
    	_RunDos('"' & @ScriptDir & "\Base64_\Base64.exe /d " & @ScriptDir & "\temp.txt " & @ScriptDir & "\" & $filename & '"')
    
    
    EndFunc ;==>_attachment_export


    Gruß gmmg :)

  • Email Attachment extrahieren - per POP3 TXT filtern und in Variable übernehmen

    • gmmg
    • 6. Oktober 2016 um 14:27

    Hallo Zusammen,

    habe mir mal die Beiträge von euch angesehen und auch die POPShow von Oscar angetestet. Die sieht ganz gut aus, aber ist nicht das, was ich brauche :)

    Habe mein Script nocht etwas angepasst und die GUI entfernt, da diese nicht benötigt wird.
    Die Emails werden vom entsprechenden POP Konto abgeholt, die Email Anhänge Extrahiert und danach wird die eMail gelöscht.

    Derzeit wird ja der Encodierte Anhang in einer TXT zwischengespeichert. Eventuell könnte man das auch direkt aus der Variable Decodieren.

    AutoIt
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    #include <array.au3>
    #include <_pop3.au3>
    #include <Constants.au3>
    #include <EditConstants.au3>
    
    
    #include <Base64.au3>
    #include <String.au3>
    
    
    Global $MyPopServer = "server"
    Global $MyLogin = "user"
    Global $MyPasswd = "password"
    
    
    $sLVhdr = "ID"
    $aLVhdr = StringSplit($sLVhdr, "|")
    
    
    checkmail()
    
    
    Func checkmail()
    
    
        _pop3Connect($MyPopServer, $MyLogin, $MyPasswd)
    
    
        If @error Then
            MsgBox(262144 + 16, "", "Unable to connect to mail server @error=" & @error)
            Exit
        EndIf
    
    
        $aLoopNum = _Pop3Stat()
    	MsgBox(0,"Anzahl Nachrichten", $aLoopNum[1])
        $iCurrent = 0
        While $iCurrent < $aLoopNum[1]
            $iCurrent += 1
            $sMsgHdr = _Pop3Top($iCurrent, 1)
            $stat = _Pop3List($iCurrent)
    		;_ArrayDisplay($stat)
    
    
    		$sItem = $stat[1]
    
    
            For $i = 1 To $aLVhdr[0]
                $aItem = StringRegExp($sMsgHdr, "(" & $aLVhdr[$i] & " :) (.*[\r\n])", 3)
                If @error = 0 Then
                    If UBound($aItem) = 2 Then
                        $sItem &= StringStripWS($aItem[1], 3) & "|"
                    EndIf
                EndIf
    
    
    			retrieve_Mail($sItem)
    
    
            Next
    
    
        WEnd
    	_Pop3Quit()
    	_pop3Disconnect()
    
    
    EndFunc   ;==>checkmail
    
    
    Func retrieve_Mail($sItem)
    
    
    	$aMsgNum = StringSplit($sItem, " ")
    
    
        If $aMsgNum[0] = 1 Then Return
    
    
    	$mail = _Pop3Retr($aMsgNum[1])
    
    
    	$aRegEx_filename = StringRegExp($mail, "(?s)filename=""(.+?)"";",1)
    	$aRegEx_file = StringRegExp($mail, "(?s)Content-Transfer-Encoding: base64(.+?)\R\R--", 3)
    
    
    
    
    	If @error = 1 Then
    		_Pop3Dele($aMsgNum[1])
    	Else
    		_attachment_export($aRegEx_filename[0],$aRegEx_file[0])
    		_Pop3Dele($aMsgNum[1])
    
    
    	EndIf
    
    
    EndFunc   ;==>retrieve_Mail
    
    
    
    
    Func _attachment_export($filename,$string)
    
    
    	If FileExists(@ScriptDir & "\temp.txt") Then FileDelete(@ScriptDir & "\temp.txt")
    	FileWrite(@ScriptDir & "\temp.txt", $string)
    	$RetVal = Base64DecFile(@ScriptDir & "\temp.txt", @ScriptDir & "\" & $filename)
    
    
    EndFunc ;==>_attachment_export
    Alles anzeigen

    eventuell kann man hier auch noch den Quellcode etwas verschlanken....

    Um die Mail direkt aus der Variable zu bearbeiten, müsste die Funktion Base64DecFile() aus der Base64.au3 angepasst werden.


    Gruß gmmg

  • Internet Explorer Proxy Einstellungen

    • gmmg
    • 4. Oktober 2016 um 12:19

    super, danke für deine Rückmeldung :)

  • Email Attachment extrahieren - per POP3 TXT filtern und in Variable übernehmen

    • gmmg
    • 4. Oktober 2016 um 12:18

    Danke für die Antworten :) Werde mir das mal ansehen und berichten.

    Den Zugriff über open SSL hab ich auch schon im engl. Forum gesehen, wird aber nicht unbedingt benötigt, da wir die mails intern abholen.

    Gruß gmmg

  • Email Attachment extrahieren - per POP3 TXT filtern und in Variable übernehmen

    • gmmg
    • 29. September 2016 um 14:02

    hier nochmal das ganze Projekt im derzeitigen Stand ... habe mal den Namen vom Post geändert, dass man genauer weiß um was es geht.

    Zielstellung ist es, Email Anhänge über das Script pop3_Mail.au3 zu Extrahieren und Abzuspeichern, das funktioniert schon ganz gut, aber ist bei Großen Anhängen zu langsam.
    Da muss ich nochmal schauen ob man das optimieren kann.

    AutoIt
    #include <ButtonConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <TreeViewConstants.au3>
    #include <WindowsConstants.au3>
    #include <GuiListView.au3>
    #include <array.au3>
    #include <_pop3.au3>
    #include <Constants.au3>
    #include <EditConstants.au3>
    #include <ListViewConstants.au3>
    #include <Base64.au3>
    #include <String.au3>
    
    
    ;#NoTrayIcon
    
    
    ;Opt("TrayMenuMode",1)   ; Default tray menu items (Script Paused/Exit) will not be shown.
    
    
    ;$settingsitem   = TrayCreateMenu("Settings")
    ;$displayitem    = TrayCreateItem("Display", $settingsitem)
    ;$printeritem    = TrayCreateItem("Printer", $settingsitem)
    ;TrayCreateItem("")
    ;$aboutitem      = TrayCreateItem("About")
    ;TrayCreateItem("")
    ;$exititem       = TrayCreateItem("Exit")
    
    
    ;TraySetState()
    ;TraySetClick(16)
    
    
    Global $MyPopServer = "server"
    Global $MyLogin = "User"
    Global $MyPasswd = "pwd"
    
    
    $Form1_1 = GUICreate("Inem Mail", 500, 480)
    $sLVhdr = "ID|Date|From|Subject"
    $aLVhdr = StringSplit($sLVhdr, "|")
    $ListView1 = GUICtrlCreateListView($sLVhdr, 100, 34, 390, 169)
    GUICtrlSendMsg(-1, 0x101E, 0, 48)
    GUICtrlSendMsg(-1, 0x101E, 1, 100)
    GUICtrlSendMsg(-1, 0x101E, 2, 100)
    GUICtrlSendMsg(-1, 0x101E, 3, 140)
    $Edit1 = GUICtrlCreateEdit("", 10, 220, 480, 249)
    $TreeView1 = GUICtrlCreateTreeView(5, 34, 86, 169)
    $TreeView1_0 = GUICtrlCreateTreeViewItem("INBOX", $TreeView1)
    $TreeView1_1 = GUICtrlCreateTreeViewItem("Unread", $TreeView1_0)
    $TreeView1_2 = GUICtrlCreateTreeViewItem("Read", $TreeView1_0)
    $TreeView1_3 = GUICtrlCreateTreeViewItem("All Mail", $TreeView1_0)
    $TreeView1_4 = GUICtrlCreateTreeViewItem("Send Mail", $TreeView1)
    $TreeView1_5 = GUICtrlCreateTreeViewItem("Drafts", $TreeView1)
    $TreeView1_6 = GUICtrlCreateTreeViewItem("Spam", $TreeView1)
    
    
    $Button1 = GUICtrlCreateButton("Compose", 4, 4, 65, 21, 0)
    $Button2 = GUICtrlCreateButton("Send / Recieve", 72, 4, 85, 21, 0)
    
    
    GUISetState(@SW_SHOW)
    
    
    GUIRegisterMsg($WM_NOTIFY, "WM_Notify_Events")
    While 1
        $nMsg = GUIGetMsg()
        Select
            Case $nMsg = $GUI_EVENT_CLOSE
                Exit
            Case $nMsg = $Button2
                checkmail()
        EndSelect
    WEnd
    
    
    Func Click()
    
    
        _pop3Connect($MyPopServer, $MyLogin, $MyPasswd)
        $iRow = _GUICtrlListView_GetNextItem($ListView1) ; current selected
        If $iRow = -1 Then Return
        $aMsgNum = StringSplit(_GUICtrlListView_GetItemText($ListView1, $iRow), " ")
        If $aMsgNum[0] = 1 Then Return
        GUICtrlSetData($Edit1, _Pop3Retr($aMsgNum[1]))
    	$mail = _Pop3Retr($aMsgNum[1])
    
    
    	_pop3Disconnect()
    
    
    	$aRegEx = StringRegExp($mail, "(?s)filename=""(.+?)""; size=\d+;.+?Content-Transfer-Encoding:(.+?)\R\R--", 3)
    	$aRegEx = StringRegExp($mail, "(?s)filename=""(.+?)""; size=\d+;.+?Content-Transfer-Encoding: base64(.+?)\R\R--", 3)
    
    
    	;_attachment_export($aRegEx[0],$aRegEx[1])
    
    
    EndFunc   ;==>Click
    
    
    Func _attachment_export($filename,$string)
    
    
    	If FileExists(@ScriptDir & "\temp.txt") Then FileDelete(@ScriptDir & "\temp.txt")
    	FileWrite(@ScriptDir & "\temp.txt", $string)
    	;$RetVal = Base64DecFile("D:\Data\scripte\POP3\_pop3\Pop3_OK\mail.txt", "D:\Data\scripte\POP3\_pop3\Pop3_OK\" & $filename)
    	$RetVal = Base64DecFile(@ScriptDir & "\temp.txt", @ScriptDir & "\" & $filename)
    
    
    EndFunc
    
    
    
    
    Func WM_Notify_Events($hWndGUI, $MsgID, $wParam, $lParam)
    
    
    	Local $tagNMHDR, $iEvent
        If $wParam = $ListView1 Then
            $tagNMHDR = DllStructCreate("int;int;int", $lParam)
            $iEvent = DllStructGetData($tagNMHDR, 3)
            ;If $iEvent = $NM_DBLCLK Then Click()
            If $iEvent = $NM_CLICK Then Click()
    	EndIf
    
    
    EndFunc   ;==>WM_Notify_Events
    
    
    Func checkmail()
    
    
        _pop3Connect($MyPopServer, $MyLogin, $MyPasswd)
        If @error Then
            MsgBox(262144 + 16, "", "Unable to connect to mail server @error=" & @error)
            Exit
        EndIf
        $aLoopNum = _Pop3Stat()
        $iCurrent = 0
        While $iCurrent < $aLoopNum[1]
            $iCurrent += 1
            $sMsgHdr = _Pop3Top($iCurrent, 1)
            $stat = _Pop3List($iCurrent)
    
    
    		$sItem = $stat[1] & "|"
    
    
    		;ConsoleWrite($stat[1] & @CRLF)
    
    
            For $i = 2 To $aLVhdr[0]
                $aItem = StringRegExp($sMsgHdr, "(" & $aLVhdr[$i] & " :) (.*[\r\n])", 3)
                If @error = 0 Then
                    If UBound($aItem) = 2 Then
                        $sItem &= StringStripWS($aItem[1], 3) & "|"
                    EndIf
                EndIf
                ;StringTrimRight($sItem, 1)
            Next
            GUICtrlCreateListViewItem($sItem, $ListView1)
    
    
        WEnd
        _pop3Disconnect()
    
    
    EndFunc   ;==>checkmail
    Alles anzeigen

    Gruß gmmg

    Dateien

    _pop3.au3 11,61 kB – 321 Downloads Base64.au3 6,29 kB – 324 Downloads pop3_Mail_Extract.au3 2,04 kB – 312 Downloads
  • Email Attachment extrahieren - per POP3 TXT filtern und in Variable übernehmen

    • gmmg
    • 29. September 2016 um 13:08

    Ich glaube, es lag an meinem Script, hier war noch ein Fehler im Quelltext.
    Schau mir das gleich mal alles an und Poste dann das komplette Script.

    Danke

    Gruß gmmg

  • Email Attachment extrahieren - per POP3 TXT filtern und in Variable übernehmen

    • gmmg
    • 29. September 2016 um 11:47

    Kann man das RegEx so umbauen das der Filename aus dem Zweig Content-Disposition: attachment; filename="netscan.xml"; ausgelesen wird.
    Möchte hier sozusagen das netscan.xml haben.

    Das hat eben bei einer anderen Mail nicht geklappt.

    Anbei nochmal die Datei.

    Danke

    Dateien

    mail.txt 65,36 kB – 317 Downloads
  • Email Attachment extrahieren - per POP3 TXT filtern und in Variable übernehmen

    • gmmg
    • 29. September 2016 um 11:39

    OK, hab das "$aRegEx" jetzt auch direkt aus der Variable gefüttert, funktioniert erstmal ohne Probleme.
    Jetzt muss ich noch abfangen, wenn in der Mail kein Attachment "Content-Disposition: attachment; " drin ist.

    Gruß gmmg

  • Email Attachment extrahieren - per POP3 TXT filtern und in Variable übernehmen

    • gmmg
    • 29. September 2016 um 11:32

    nein, nur eine Mail. normalerweise steht die Mail auch direkt in einer Variable.

    Ein ArrayDisplay bringt kein Ergebnis, weil das Programm hängt.

    Wenn ich aber die Ergebnisse mit Consolewrite($aRegEx[1]) bzw. Consolewrite($aRegEx[0]) ausgebe, ist alles schnell.
    Von daher passt das erstmal.
    Welche Autoit Version benutzt du? Ich habe noch die Version 3.3.12.0

    Gruß gmmg

  • Email Attachment extrahieren - per POP3 TXT filtern und in Variable übernehmen

    • gmmg
    • 28. September 2016 um 15:36

    Das Array Display dauert aber bei mir recht lange. bzw. hat nach 30 sekunden noch kein Ergebnis.

    Gruß gmmg

  • Email Attachment extrahieren - per POP3 TXT filtern und in Variable übernehmen

    • gmmg
    • 28. September 2016 um 15:20

    Hallo Zusammen,

    ich bin grad dabei mit der POP3 UDF ein Script zu erstellen, was mir die Anhänge entsprechend abspeichert.

    Habe hier aber grad das Problem beim Filtern des entsprechenden Textes der jeweiligen Email. (siehe Mail.txt)

    Stringsplit und dergleichen bleiben beim Arraydisplay dann immer hängen. Über Consolewrite wird dieser ohne Probleme ausgegeben.

    Benötigt wird der Abschnitt "filename=" und der Abschnitt nach dem "Content-Transfer-Encoding:", also das Codierte Attachment.


    Hat einer hier eine zündende Idee? :)

    AutoIt
    Local $aArray = FileReadToArray(@scriptdir & "\mail.txt")
    ;~     If @error Then
    ;~         MsgBox($MB_SYSTEMMODAL, "", "There was an error reading the file. @error: " & @error) ; An error occurred reading the current script file.
    ;~     Else
    ;~         For $i = 0 To UBound($aArray) - 1 ; Loop through the array.
    ;~             MsgBox($MB_SYSTEMMODAL, "", $aArray[$i]) ; Display the contents of the array.
    ;~         Next
    ;~     EndIf
    
    
    _ArrayDisplay($aArray)
    Alles anzeigen

    Danke

    Gruß gmmg

    Dateien

    mail.txt 2,17 kB – 352 Downloads

Spenden

Jeder Euro hilft uns, Euch zu helfen.

Download

AutoIt Tutorial
AutoIt Buch
Onlinehilfe
AutoIt Entwickler
  1. Datenschutzerklärung
  2. Impressum
  3. Shoutbox-Archiv
Community-Software: WoltLab Suite™