Email empfang

  • Superrrrrr :)  water : Danke für die Tipps es hat funktioniert.

    Ich hab zwar persönlich immer noch nicht richtig verstanden wie das funktioniert bsp:

    $oItem.SenderName ->"Wo steht das '.SenderName'" <- woher wissen wir das man dies eingeben werden muss ?

    Das habe ich generell bei Objekten so, woher weiß man sowas bzw. wo bekommt man solche Informationen genau her?

    Werde morgen mal den kompletten Code posten, es gibt vielleicht noch Fehler zu entdecken, bin grad nicht mehr auf der Arbeit deshalb erst wieder morgen :)

  • Für Outlook findest Du einen Link auf die Microsoft Outlook Object Reference hier.
    Dort werden die Objekte, Methoden und Properties für Outlook beschrieben.
    Die Property SenderName für ein MailItem findest Du hier.

  • water Danke für die Einweisungen.

    So musste nun einige Tage hier für Kollegen einspringen deshalb hatte ich leider keine Zeit mich weiter damit intensiver zu beschäftigen.

    Habe schon 1x exe kompiliert letzte Woche, die Funktioniert aber hat noch Fehler drinnen.

    Leider habe ich den Code versehentlich über speichert.

    nun wollte ich das ganze verbessern aber aus irgendeinem Grund schickt er nun die mail nicht los. error = 1003

    Woran liegt das oO.? :/


    Hier mal der neue Code :


  • Nach

    Code
    $oOL=ClientStart()

    fehlt die Schleife, damit das Programm nicht sofort beendet. Beispiel siehe GUICreate.

  • fehlt die Schleife, damit das Programm nicht sofort beendet

    Es beendet sich doch gar nicht sofort.

    zeile 68 - 70 While

    Habe eher ClientStart den Return Wert beim Starten ausgeben lassen damit dieser in der anderen Funktion direkt gefunden wird und nicht abricht da $var ist sonst nicht deklariert.

    Dachte ich muss es mit Opt("GUIOnEventMode", 1) machen.

    Die Msgbox zeigt er auch in der Func oOL_ItemAdd($oItem) richtig an. wenn eine Mail eingeht.

    Warum sendet er dann die Mail nicht los. Oder muss ich dafür ein eigenes _OL_Open auf machen?


    Änderung :

    Code
    Global $oOL =''
    $Button_Start_ = GUICtrlCreateButton("Start", 302, 73, 100, 25, -1, -1)
    ;~ $oOL=ClientStart()
    While 1
        Sleep(50)
    WEnd

    Leider das selbe Ergebnis :/

    Einmal editiert, zuletzt von MojoeB (25. Juli 2022 um 12:35)

  • Ah, die Schleife war gut versteckt.

    Der Code ist etwas unübersichtlich. Ich schlage vor, dass Du das Beispielskript _OL_Example_NewMailEX_Event.au3 um den Aufruf von _OL_WrapperSendMail direkt erweiterst.

    Wenn das dann funktioniert, kannst Du das Skript um die GUI-Komponente erweitern.

  • water :

    Also ich habe nun die '_OL_Example_ItemAdd2_Event.au3' & '_OL_Wrapper_SendMail.au3'

    Da es ja um ein anderes Postfach in Outlook gedacht ist.

    Wenn ich die Beispiele zusammenschiebe 'augenscheinlich' genau wie in meinem Skript, dann funktioniert das ohne GUI aber mit GUI irgendwie nicht mehr.

    Code
    sMailbox 
    sCurrentUser 

    müssen lediglich angepasst werden.


    EDIT : water :

    Ich muss zurückrudern, es war doch eine dumme Kleinigkeit. Die einzige Änderung die ich machen musste war statt Local / Global $oOL = _OL_Open

    Nun funktioniert es. Muss noch bei Stopp irgentwie richtig programmieren.


    Code
    Global $oOL = _OL_Open()

    Einmal editiert, zuletzt von MojoeB (26. Juli 2022 um 12:55)

  • So nun ist das Thema durch, erledigt.

    Falls jemand das Endprodukt haben möchte :

    In einer config.cfg kann man

    Zeile 1 = 'Überwachter Posteingang'

    Zeile 2 = 'Weiterleitung an'

    Danach kann man das Programm in den Autostart nach Outlook öffnen lassen & die Aufgabe beginnt direkt.


    Danke nochmal an alle & auch vorallem an Water :).

  • Aus diesem Thread ergeben sich für mich folgende Empfehlungen:

    • Variablennamen:
      • Der erste Buchstabe nach dem $ sollte den Inhaltstyp angeben. Details siehe hier.
      • Die Namen solten sprechend sein. Also statt $Input1 vielleicht $sMailBox2Monitor.
    • Code gleichen Typs zusammenfassen: Es sollten z.B. alle Funktionen hintereinander liegen, damit man nicht Codezeilen (hier die While-Schleife) dazwischen suchen muss.
    • Dokumentation, Dokumentation, Dokumentation: Es sollte sich aus dem Code inkl. Doku erschließen, was das Skript an der entsprechenden Stelle tut.
    • Fehlerprüfung: Nach jedem Funktionsaufruf den Rückkehrwert sowie die Makros @error und @extended auf Fehler prüfen.
  • bin nicht mehr auf der Arbeit konnte es deswegen nicht testen aber ist es so besser ?=)

    3 Mal editiert, zuletzt von MojoeB (26. Juli 2022 um 18:55) aus folgendem Grund: nochmal verbessert : Scann_NewMailEvent() | zeile 144 -153 hinzugefügt. Statt Beenden wird das Skript nun neu gestartet, bei einem weiterem Click auf den Flexbutton. (nur Compilert startet es auch neu.)

  • Das sieht schon sehr gut aus :thumbup: