OL Wrapper mit Fehler 6002

  • Hallo,

    Bekomme bei meinem Programm neuerdings die Fehlermeldung:

    Habe dazu diesen Post gefunden:

    _OL_Wrapper_SendMail gibt den Fehler 6002 aus

    Bei mir exakt der selbige Fall, wollte nur nicht den Post kapern und deshalb mache ich hier einen neuen auf.

    Gibt es denn schon Erkenntnisse wie man diesen Fehler wegbekommt?

    Komme ehrlich gesagt auch nicht wirklich mit _OL_ItemFind klar wie von water im letzten Post angesprochen.

    Es gibt drei Wahrheiten: deine Wahrheit, meine Wahrheit und die Wahrheit

  • Welche Version der OutlookEX UDF verwendest Du? Ab Version 1.6.3.1 wird ein Fehler von Outlook abgefangen und mit einem (nicht übertrieben schönen) Workaround behoben:

    Zitat

    _OL_ItemSend:

    The function handles the MAPI_E_INVALID_PARAMETER (HRESULT 0x80070057) error found in Outlook 365 Version 2009.

    It creates and activates an Inspector for the item, minimizes the window and sends the item again to work around the error.

    Described here and the following posts: https://www.autoitscript.com/forum/topic/12…comment=1466457

  • Hallo water, danke fürs Antworten.

    Hatte tatsächlich eine 1.5.0.0 Version der OutlookEX UDF. Aber auch nachdem ich diese getauscht hatte, kommt selbiger Fehler.

    Hier mal die Ausgabe von _OL_ErrorNotify(2):

    Es gibt drei Wahrheiten: deine Wahrheit, meine Wahrheit und die Wahrheit

  • Zeile 4106 ist

    Code
    $vItem.Send()

    in Funktion _OL_ItemSend.

    Was mich wundert ist der Fehlercode 0x80020009. Dies ist ein General Error und nicht jener, der in _OL_ItemSend nun abgefangen wird.

    • Kannst Du Deinen Code posten?
    • Welche Version von Outlook verwendest Du?
  • "Kannst Du Deinen Code posten?"

    Nicht wirklich komplett.

    Hatte diesen Fehler allerdings nicht bis Ende Mai erst danach ist dieser Fehler bei mir und auch auf den anderen Firmenrechnern aufgetreten.

    Auf den Firmenrechnern ist auch nur eine *.exe vorhanden an der nichts geändert werden kann.

    Es gibt drei Wahrheiten: deine Wahrheit, meine Wahrheit und die Wahrheit

  • Das sieht doch etwas komplex aus. Kannst Du das Beispielscript _OL_Wrapper_SendMail.au3 ausführen und schauen, ob das läuft?

  • Dann lass Dir in Deinem Skript vor dem Aufruf von _OL_Wrapper_SendMail alle Parameter mit ConsoleWrite/MsgBox ausgeben und zwar mit einem Begrenzungszeichnen vorne unt hinten also z.B.;

    ConsoleWrite(">>" & $sBody & "<<" & @CRLF)

    Mal sehen, ob es da irgendwelche Auffälligkeiten gibt?

  • Habe es in dieser Reihenfolge geschrieben.

    ConsoleWrite(">>" & $sCurrentUser & "<<" & @CRLF)

    ConsoleWrite(">>" & $copy_1 & "<<" & @CRLF)

    ConsoleWrite(">>" & $copy_2 & "<<" & @CRLF)

    ConsoleWrite(">>" & $Subject & "<<" & @CRLF)

    ConsoleWrite(">>" & $sBody & "<<" & @CRLF)

    ConsoleWrite(">>" & $AttachFiles & "<<" & @CRLF)

    ConsoleWrite(">>" & $olFormatHTML & "<<" & @CRLF)

    ConsoleWrite(">>" & $olImportanceHigh & "<<" & @CRLF)

    Ergebnis:

    >>xxxxxxx.xxxx@t-online.de<<

    >><<

    >><<

    >>Bestellung von der Bst. Baustellentest<<

    >><FONT SIZE="4">Hallo,<br><br><br>im Anhang meine Bestellung vom 09.06.2021 um 18:42:14 als PDF Datei<br><br><br><br>Gruss<br>Testperson</FONT><br><br><FONT SIZE="1">--------------------------------------------------------------------------------------------------------------<br><br>--------------------------------------------------------------------------------------------------------------<br>Diese E-Mail enthaelt vertrauliche und/oder rechtlich geschuetzte Informationen.<br>Wenn Sie nicht der richtige Adressat sind oder diese E-Mail irrtuemlich erhalten<br>haben, informieren Sie bitte sofort den Absender und vernichten Sie diese<br>E-Mail. Die Kenntnisnahme des Inhaltes, das unerlaubte Kopieren sowie die<br>unbefugte Weitergabe dieser E-Mail sind nicht gestattet</FONT><<

    >>D:\Bestellprogramm_sicherung\Data\Download\S1_V_09_06_21_18_42_14.pdf<<

    >>2<<

    >>2<<

    >Exit code: 1 Time: 20.117

    Es gibt drei Wahrheiten: deine Wahrheit, meine Wahrheit und die Wahrheit

  • Dann spiel mal die verschiedenen Varianten durch:

    • Parameter $sBody und $iBodyFormat als reiner Text
    • Ohne Attachment
    • Importante auf Default
  • >>xxxxx.xxxx@t-online.de<<

    >><<

    >><<

    >>Bestellung von der Bst. Baustellentest<<

    >>Das ist ein Test Text<<

    >>D:\Bestellprogramm_sicherung\Data\Download\S1_V_09_06_21_18_42_14.pdf;D:\Bestellprogramm_sicherung\Data\Download\S1_V_09_06_21_19_34_57.pdf;D:\Bestellprogramm_sicherung\Data\Download\S1_V_09_06_21_19_36_37.pdf;D:\Bestellprogramm_sicherung\Data\Download\S1_V_09_06_21_19_40_16.pdf<<

    >>2<<

    >>2<<

    >Exit code: 1 Time: 14.943

    Fehler 6002 kommt immer noch

    Es gibt drei Wahrheiten: deine Wahrheit, meine Wahrheit und die Wahrheit

  • So habe herausgefunden, woran der hängenbleibt.

    Das mit den Varianten testen war der richtige Wegweiser, danke dir water

    Tausche ich diese beiden Zeilen aus

    Global $sCurrentUser = IniRead($programmini, "Mail", "user", "")

    zu

    Global $sCurrentUser = $oOutlook.GetNameSpace("MAPI").CurrentUser.Name

    sendet er.

    Das warum ist mir allerdings noch ein Rätsel. Muss das ganze jetzt noch auf den Firmenrechnern Testen.

    Es gibt drei Wahrheiten: deine Wahrheit, meine Wahrheit und die Wahrheit

    Einmal editiert, zuletzt von oh-ha (9. Juni 2021 um 21:54)

  • :)

  • Naja oh-ha , Kann er die ini denn korrekt auslesen (als default gibst du ja '' an, falls er nichts auslesen kann, was zu deinem Problem führen könnte)?

    Vergleich mal die beiden Ausgaben von deinem $sCurrentUser ggf. ist dort ein Unterschied drin, der deinen Fehler hoch kommen lässt.

    Also mal so testen z.B.:

    Code
    $sCurrentUser1 = IniRead($programmini, "Mail", "user", "")
    $sCurrentUser2 = $oOutlook.GetNameSpace("MAPI").CurrentUser.Name
    MsgBox(1,'','Ini: ' & $sCurrentUser1 & '   Object: ' & $sCurrentUser2)

    Wenn bei deiner ini gar nichts zurück kommt. Prüfe ob deine ini da liegt, wo $programmini es angibt und ob dort die Sektion Mail und der Key user überhaupt existiert.

    Wenn bei beidem was ausgelesen wird aber Unterschiede bestehen, prüfe ob der Wert in der ini dem entspricht was du haben willst/musst.

  • Moin,

    selbst wenn die *.ini vom Kollegen gelöscht verschoben wurde, wird es bei Programmstart geprüft.

    Wird auch in einem Fenster der Gui angezeigt an wen da gesendet wird, kann man halt nur nicht ändern außer in der Ini.

    Sollte keine *.ini vorhanden sein wird eine minimal ini geschrieben die zumindest sicherstellt, dass die Mail an die Bestell Adresse gesendet wird.

    Du hast aber insoweit recht das, dass Programm so reagiert als, wenn keine Ini vorhanden wäre, allein erklären kann ich es mir nicht.

    Zumal es auf mehreren Rechnern passiert ist.

    Es gibt drei Wahrheiten: deine Wahrheit, meine Wahrheit und die Wahrheit

  • Wie gesagt dort sollte man die oben genannte Ausgabe dann mal prüfen.

    Das kann sowohl ein Ini Problem sein (falsche/nicht vorhandene Werte) als auch ein Rechte Problem (kein Zugriff auf die Ini/ ini nicht vorhanden).

    Und wenn du die "default" ini neu schreibst, musst du ja wissen was dort stehen müsste.

    Und auf den PC's wo es Probleme gibt kannst du es dann easy nachprüfen.