OutlookEX UDF - Vorlagen erstellen

  • Hi,

    ich möchte mit Hilfe der OutlookEX UDF ein paar (ca 5000) Vorlagen erstellen und in Outlook zu speichern, um sie später bei Bedarf zu exportieren.

    Eine leere Vorlage bekomme ich hin mit:

    [autoit]


    #include <outlook\OutlookEx.au3>
    $oOL = _OL_Open()
    _OL_ItemCreate($oOL, $olMailItem)

    [/autoit]

    Allerdings sollen alle einen anderen Betreff und auch verschiedene Anhänge bekommen.

    Gibts da eine Möglichkeit?

    Gruß,
    x0r

    Simon nörgelt, Simon nervt - aber Simon verbessert die Welt. Glaubt er.

    Einmal editiert, zuletzt von x0r (26. Mai 2015 um 16:22)

  • schau doch mal in die _OL_ItemCreate.au3. da sind mehrer Beispiele drin, z.B. folgendes Example 4

    hier wird der betreff übergeben und im weiteren verlauf noch ein Anhang angefügt.

    Das musst du theoretisch nur in eine Schleife packen und die Vorlagen erstellen lassen

    [autoit]


    ; Example 4
    ; Create a html mail plus two attachments (plus one inline picture = attachment)
    ; but don't send it
    ; *****************************************************************************
    ; Create the item without setting the body. We first need to add the picture before we can refer to in by the HTML body.
    $oItem = _OL_ItemCreate($oOutlook, $olMailItem, "*\Outlook-UDF-Test\TargetFolder\Mail", "", "Subject=TestMail", "BodyFormat=" & $olFormatHTML)
    If @error <> 0 Then Exit MsgBox(16, "OutlookEX UDF: _OL_ItemCreate Example Script", "Error creating a mail in folder 'Outlook-UDF-Test\TargetFolder\Mail'. @error = " & @error & ", @extended = " & @extended)
    ; Add all attachments
    $oItem = _OL_ItemAttachmentAdd($oOutlook, $oItem, Default, @ScriptDir & "\The_Outlook.jpg", @ScriptDir & "\_OL_ItemCopy.au3, 4", @ScriptDir & "\_OL_Foldertree.au3")
    If @error <> 0 Then Exit MsgBox(16, "OutlookEX UDF: _OL_ItemCreate Example Script", "Error adding an attachment to a mail in folder 'Outlook-UDF-Test\TargetFolder\Mail'. @error = " & @error & ", @extended = " & @extended)
    ; Modify the item to add HTML that refers to the picture
    $oItem = _OL_ItemModify($oOutlook, $oItem, Default, "HTMLBody=Bodytext in <b>bold</b><img src='cid:The_Outlook.jpg'>Embedded image.")
    If @error <> 0 Then Exit MsgBox(16, "OutlookEX UDF: _OL_ItemCreate Example Script", "Error modifying the item in folder 'Outlook-UDF-Test\TargetFolder\Mail'. @error = " & @error & ", @extended = " & @extended)
    $oItem.Display
    MsgBox(64, "OutlookEX UDF: _OL_ItemCreate Example Script", "Mail with inline picture created.")

    [/autoit]

    Gruß gmmg

  • ...und mal wieder bin ich einfach nur zu blöd :D

    Hab die ganzen Dateien in einen separaten Ordner gepackt, weil ich dachte, die gehören zur UDF selbst - also es wären keine Beispiele.

    Verdammt! :D

    Danke dir, für den Tipp :)

    Simon nörgelt, Simon nervt - aber Simon verbessert die Welt. Glaubt er.

  • Was verstehst Du unter Vorlage? Ein sogn. Template, das bei der Erstellung einer neuen Mail als "Vorlage" verwendet wird? Die haben den Dateityp "oft".

  • Hi water,

    ich meine "Entwürfe".

    So dachte ich mir das: Ich habe ca 5000 Listen, die zum Teil bestimmten Personen gehören (eine hat 100, die andere 50, usw), jetz muss ich jeder Person eine Email aufsetzen, mit Betreff, Text und zugehörigen 2 Listen.
    Die erstellten Mails möchte ich dann in Ordner packen und den einzelnen Personen zukommen lassen (damit die die dann weiter verarbeiten können und an Kunden verschicken).

    Bin aber schon so gut wie fertig mit dem Test:

    [autoit]


    #include <OutlookEX.au3>
    #include <file.au3>
    Global $isr = "ich"
    Global $sAdresse = ""
    Global $sBetreff = FileRead(@ScriptDir & "\Betreff.txt")
    Global $sNachrText = FileRead(@ScriptDir & "\Text.txt")
    Global $sAnhang
    Global $oItem
    Global $ary
    _FileReadToArray(@ScriptDir & "\" & $isr & "\nummern.txt", $ary)
    for $i = 1 to $ary[0]
    Global $oOutlook = _OL_Open()
    $oItem = _OL_ItemCreate($oOutlook, $olMailItem, "", "", "Subject=" & $sBetreff & " AP - " & $ary[$i], "BodyFormat=" & $olFormatHTML)
    if FileExists(@ScriptDir & "\" & $isr & "\Client_AP - " & $ary[$i] & ".xls") Then _
    $oItem = _OL_ItemAttachmentAdd($oOutlook, $oItem, Default, @ScriptDir & "\" & $isr & "\Client_AP - " & $ary[$i] & ".xls")
    if FileExists(@ScriptDir & "\" & $isr & "\Enterprise_AP - " & $ary[$i] & ".xls") Then _
    $oItem = _OL_ItemAttachmentAdd($oOutlook, $oItem, Default, @ScriptDir & "\" & $isr & "\Enterprise_AP - " & $ary[$i] & ".xls")
    $oItem = _OL_ItemModify($oOutlook, $oItem, Default, "", "Body=" & $sNachrText)
    Next

    [/autoit]

    Funktioniert wunderbar! :D

    €dit: irgendwie macht der Mist beim Syntax-Highlighting :o

    Simon nörgelt, Simon nervt - aber Simon verbessert die Welt. Glaubt er.

  • _OL_Open gehört außerhalb der Schleife. Da reicht ein Aufruf!

    Also wenn ich von Dir 100 Mails mit Berichten bekommen würde, dann kriege zuerst ich und dann darauf folgend Du die Krise.
    Magst Du nicht alle Reports je Empfänger in einer ZIP-Datei zusammenfassen und dann EINE Mail versenden?

  • ja, das _OL_Open muss ich da noch wegpacken..

    Jede Nummer kriegt nur eine Mail mit 1-2 Listen, bei ca 5000 Listen wären das in etwa 2500 Kunden.

    Es passt also schon so :D

    Müsste ich einem einzelnen die 5000 Listen / Mails schicken, wäre eine ZIP/RAR schon angebrachter. Wenn es aber SO einfach wäre, müsste ich es nicht machen :thumbup:

    Simon nörgelt, Simon nervt - aber Simon verbessert die Welt. Glaubt er.