Frage zu Mail Senden mit Outlook.au3

  • Hallo zusammen,

    Ich habe eine (wahrscheinlich) dumme Frage, zu der ich aber keine verständliche Lösung gefunden habe.

    Und zwar habe ich mit o.g. Bibliothek so meine Sorgen. Vielleicht kennt die ja jemand, ich habe sie von hier:
    https://www.autoitscript.com/forum/topic/89321-outlook-udf/

    Ich wollte im ersten Schritt einfach nur eine Testmail senden an "Empfaengeradresse".
    Ich habe Outlook auf dem PC und bin auch angemeldet, d.h. Mails senden und Empfangen funktioniert.

    Also $success wird 0 zurück gegeben.
    Aber in @error steht auch 0... wie kann das sein? In der Beschreibung steht, dass @error nichtmehr 0 sein kann wenn das Mail senden nicht funktioniert hat. (also $success gleich 0 ist)

    Wo liegt mein Fehler?

    AutoIt
    #include <GUIConstantsEx.au3>
    #include <Clipboard.au3>
    #include <WindowsConstants.au3>
    #include <Outlook.au3>
    
    
    $outlook = _OutlookOpen()
    $success = _OutlookSendMail($outlook, "Empfaengeradresse", "", "", "Test", "Dies ist eine Testmail", "", $olFormatPlain, $olImportanceNormal, "")
    MsgBox(1,"geht?",$success)
    MsgBox(1,"Errorcode",@error)


    Danke sehr. :)


    edit:
    Hier noch die Beschreibung zu entsprechender Klasse:

  • Ohe jetzt weiter deinen Code angeschaut zu haben, warum nimmst du nicht die wesentliche aktueller outlookex udf welche auch direkt oben in dem von dir verlinkten Thread steht: https://www.autoitscript.com/forum/topic/126305-outlookex-udf/

    Könnte Wette, dass sich dann dein Problem von selbst löst.

    Andy hat mir ein Schnitzel gebacken aber da war ein Raupi drauf und bevor Oscar das Bugfixen konnte kam Alina und gab mir ein AspirinJunkie.

  • Zumindest geistert der Autor der OutlookEX UDF manchmal hier herum und beantwortet Fragen ;)

  • Danke für die Tipps. Das wollte ich probieren, stoße aber auf Probleme bei der Readme Datei.


    Das ist die ReadMe:


    Ich habe OutlookEX.au3 und OutlookEXConstants.au3 in das angegebene Verzeichnis (Include Verzeichnis) Kopiert.
    Bin anschließend aus SciTe, Tools, SciTe Config, Other Tools, Run User CallTip Manager.

    Allerdings komme ich hier nicht weiter...

    Das ganze sieht so aus:

    Bei "include Folder" soll wohl der Pfad des Include Folders rein...
    Und bei UDF dann OutlookEX.au3 oder?
    Wenn ich dann auf "Parse" gehe, bin ich hier:

    Wie soll ich dann weitermachen? Bzw. wie kann ich das verstehen, was sehe ich hier? (wills ja verstehen :) )

    Danke für die Hilfe. :)


    Gruß

  • Ließ doch mal was in der Readme steht. Du sollst den CallTip Manager nur einmal starten und dann einfach direkt wieder schließen, damit Scite die zwei Dateien anlegt. Dann wie es weiter im Text steht die Dateien bearbeiten.

    Um die UDF zu nutzen kannst du dir das aber sparen, das brauchst nur wenn du in Scite die CallTips angezeigt haben willst.

    Andy hat mir ein Schnitzel gebacken aber da war ein Raupi drauf und bevor Oscar das Bugfixen konnte kam Alina und gab mir ein AspirinJunkie.

  • Die Readme habe ich gelesen, sonst hätte ich sie nicht hier rein gestellt. Ich bin nur nicht daraus schlau geworden.

    Danke für den Tipp.

    Die Vervollständigung/Vorschläge funktionieren bei vielen Befehlen, aber nicht bei allen.
    Anscheinend habe ich irgendetwas falsch gemacht.
    Ich bin auch aus der Seite im Link nicht wirklich schlau geworden.

    Es geht um diesen Satz:
    Calltips first. These are stored in <Your_User_Profile>\au3.user.calltips.api. If you are doing this for the first time then this file will not exist and you will have to create it. Then add a line like this to the file for each function you wish to have a calltip: [...]

    Welcher Pfad ist gemeint? Ist mit "<Your_User_Profile" der Pfad "C:\Users\Benutzername\" gemeint?
    Oder was für ein Speicherort ist angesprochen?


    Ich bin mit meinem Latein leider am Ende...

    Ich brauche ja die Autovervollständigung nicht unbedingt, es soll nur funktionieren.
    Brauche ich dann sonst noch etwas? (ausser die OutlookEx.au3 und die OutlookExConstants.au3 in den Include Ordner)
    Wofür sind dann die ganzen anderen au3 Dateien in dem zip das ich herunter geladen habe?
    Und wofür sind die htm Dateien?

  • Mit User Profil ist dieser Pfad gemeint: "C:\Users\<Benutzername>\AppData\Local\AutoIt v3\SciTE\".

    In den htm-Dateien ist der jeweilige Befehl erklärt und in der dazu passenden .au3 ist der Befehl in einem Beispiel verwendet.

    Steht übrigens auch in der Readme ;).

    Code
    Help files and examples
    * Copy the *.htm and the remaining *.au3 files to any directory you like. 
      You can't call the help and example scripts from the AutoIt help at the moment

    Andy hat mir ein Schnitzel gebacken aber da war ein Raupi drauf und bevor Oscar das Bugfixen konnte kam Alina und gab mir ein AspirinJunkie.

  • Vorschläge für die Verbesserung der Readme oder Help Dateien nehme ich jederzeit gerne entgegen.

  • Mit dem richtigen Backgroundwissen über allgemeine Prozeduren und Vorgehensweisen ist das sicherlich leicht zu lesen - ich komme eben nur leider aus einer komplett anderen Ecke und habe deshalb meine Probleme.

    Eine Frage zum Readme hätte ich noch.
    Es geht immernoch um das Readme, speziell um den letzten Satz dieses Absatzes:

    Code
    For SciTE integration (user calltips and syntax highlighting) run SciTe -> Tools- SciTEConfig -> Other tools -> Run User CallTip Manager
    to create files au3.user.calltips.api and au3.userudfs.properties in directory %Userprofile% or copy both files from the ZIP-file to the
    directory. If they already exist then add the content from the ZIP-files to the already existing files.

    "Add the Content from the zip Files". In dem zip waren keine weiteren Dateien vorhanden, aus denen ich mir Zeilen für die o.g. Dateien heraus schneiden und einfügen könnte.
    Oder ist ein anderes zip gemeint?


    Ich habe auch gerade etwas rumgespielt...
    Ich habe nun folgenden Quellcode:

    AutoIt
    Global $oItem
    Global $oOutlook = _OL_Open()
    If @error <> 0 Then Exit MsgBox(16, "OutlookEX UDF", "Error creating a connection to Outlook. @error = " & @error & ", @extended = " & @extended)
    Global $Result = _OL_TestEnvironmentCreate($oOutlook)
    If @error <> 0 Then Exit MsgBox(16, "OutlookEX UDF - Manage Test Environment", "Error creating the test environment. @error = " & @error & ", @extended = " & @extended)


    Der bringt mir folgende Fehlermeldung:

    Ich habe schon herausgefunden, dass es an diesem Aufruf liegt: (in der Func _OL_TestEnvironmentCreate)


    Das @extended bedeutet doch, dass die aufgerufene Methode _OL_ItemCreate den errorcode 1000 zurück gegeben hat oder?
    In der Doku der entsprechenden Methode finde ich leider nichts dazu...

    Ich komme hier leider schon wieder nicht weiter...

    Immerhin hat das mit dem "in den Kalender" schreiben funktioniert...

    Einmal editiert, zuletzt von bratwurstdealer (8. September 2015 um 14:30)

  • Beim SciTE User Calltip Manager einfach solange auf "Add" klicken bis alle Funktionen der UDF verarbeitet wurden. Der Manager meldet das mit einem Fehler.
    Da die UDF aus 103 Funktionen besteht dauert das etwas ;)

    Der @error 510 scheint ein Bug zu sein. Hatte aber leider noch keine Zeit, den zu beheben. Kommentier einfach diese Zeilen aus.

  • Danke, ich habe das mit dem Calltip Manager gemacht. Das ItemCreate hat er leider immer noch nicht...

    Ich habe die Zeilen des Error 510 heraus kommentiert.
    Jetzt kommt Error 300 ._. wohl, weil er einen Ordner nicht gefunden hat?


    Wie dem auch sei, ich wende mich nun mal dem zu, was ich ursprünglich damit tun wollte... Mails erzeugen und senden.

    Dazu benötige ich zuerst _OL_Open, anschließend _OL_ItemCreate (eine neue Mail erzeugen), _OL_ItemSend (zum Senden der erzeugten Mail) und danach _OL_Close, sehe ich das richtig?

    Der Aufruf (erstmal nur zum Mail erzeugen) ist dann folgender:


    In $oItem sollte doch nun die ID des erstellten Objekts zurück gegeben werden?
    Die Variable ist leer, woran liegt das?
    Im angegeben Ordner tut sich leider auch nichts...

  • In $oItem sollte doch nun die ID des erstellten Objekts zurück gegeben werden?

    In der Variablen steht keine ID, sondern das Objekt der erstellten Items. Mit IsObj kannst Du das prüfen.

  • Also wir dann die Referenz auf das erstellte Objekt in $oItem gespeicher oder das Objekt selbst?


    Okey, ich habe das etwas abgeändert...

    In $isobjekt steht 0... Bedeutet, dass $oItem kein Objekt ist.
    Was habe ich falsch gemacht?

  • Parameter 3 ist falsch. Das muß ein Folder von Outlook sein, nicht aus dem Dateisystem. Lass ihn weg, dann wird der Default Wert verwendet:

    Code
    #include <OutlookEX.au3>
    Global $oItem
    Global $oOutlook = _OL_Open()
    $oItem = _OL_ItemCreate($oOutlook, $olMailItem)
    MsgBox(0, "Test", IsObj($oItem))
    $oOutlook = _OL_Close($oOutlook)
  • :)