wie kann eine E_Mail (unter Entwürfe) gespeichert statt gesendet werden?

  • wie kann eine E_Mail (unter Entwürfe) gespeichert statt gesendet werden?


    Dim oApp As DvApi32.IApplication

    Dim oAccount As DvApi32.Account

    Dim oArchive As DvApi32.Archive

    Dim oMailItem As DvApi32.MailItem

    Dim oAttachment As DvApi32.Attachment

    Dim l As Long


    Set oApp = CreateObject("DVOBJAPILib.DvISEAPI")

    Set oAccount = oApp.Logon("", "", "", "", "", "AUTH")

    Set oArchive = oAccount.GetSpecialArchive(DvApi32.DvArchiveTypes.DvArchivePersonalOut)

    Set oMailItem = oArchive.NewItem(DvApi32.DvItemTypes.DvEMailItem)

    l = oMailItem.Recipients.Add("user@domain.com", "MAIL", "")

    oMailItem.Subject = "HTML mail with inline Grafik"

    oMailItem.BodyText.HTMLText = "<hmtl><body>That it is<br><img src='cid:myimgcid'></body></html>"

    oMailItem.Options.UserHold = True

    Set oAttachment = oMailItem.Attachments.Add("c:\\Images\\logo.jpg", "cid:myimgcid")


    ' oMailItem.Send ' funktioniert

    oMailItem.Save ' funktioniert nicht

    ''''' wie kann eine E_Mail (unter Entwürfe) gespeichert statt gesendet werden?


    Set oApp = Nothing

    Set oAccount = Nothing

    Set oArchive = Nothing

    Set oMailItem = Nothing

  • Thomas January 16, 2024 at 3:16 PM

    Approved the thread.
  • Danke für die schnelle Antwort!

    Ich habe es Heute in der Firma geprüft – Funktioniert leider nicht.

    Die E-Mail wird wie vorher sofort versendet.

    Auch diese Anweisung auf TRUE: oMailItem.Options.UserHold = True

    ändert nichts daran. (was macht diese Anweisung überhaupt?)

    Gibt es noch eine andere Möglichkeit?

    … z.B. mit >>.save<< (wie bei Outlook) ?

    Heinz

  • Muss die Mail unbedingt im Entwürfe Ordner landen?

    Oder geht es nur darum das sie nicht gleich versandt wird, sondern der Nutzer noch die Chance hat sie zu ergänzen?

    Falls ja, dann setze einfach ein @@warten@@ irgendwo in den Nachrichtentext.


    Damit landet die Mail dann im Transitordner und bleibt dort so lange stehen bis jemand entweder den Wartestatus aufhebt (Rechtsklick und dann Wartezustand aufheben oder beenden, so genau hab ich das gerade nicht im Kopf) oder aber die Nachricht schlicht per Doppelklick in den Editor lädt und anschließend nach - oder auch ohne - Bearbeitung mit senden abschickt.

    Wartende Nachrichten im Transitordner sind standardmäßig nur für den Nutzer unter dessen Kontext sie erstellt wurden und für Administratoren sichtbar, somit sollte das rein funktional eigentlich auch o.k. sein die Nachrichten dort statt im Entwürfe Ordner zu parken.

  • Ansonsten ließe sich noch der David Befehl

    @@Archive =>user\100080F0\system\drafts@@

    Dazu müsste allerdings die ID 100080F0 aus dem obigen Beispiel durch die tatsächliche UserID des jeweiligen David Nutzers ersetzt werden. Welche Du zu dem Zweck erst mal ermitteln müsstest.

    Wir haben das daher damals - als wir sowas genutzt haben schlicht über den eben erwähnten Wartezustand und den Transit Ordner gelöst gehabt ;)

  • Ist schon der warten Status der Mail.
    Hast du das Archive gesetzt bevor du das MailItem erzeugst?

    Ja, so

    'Tobit Archiv einlesen ('102 = Ausgangsarchiv ; '105 = Drafts/Entwürfe)

    Set oArchive = oAccount.GetSpecialArchive(DvApi32.DvArchiveTypes.DvArchivePersonalOut)

    '''Set oArchive = oAccount.GetSpecialArchive(DvApi32.DvArchiveTypes.DvArchivePersonalDrafts)


    'Neuen Archiveintrag anlegen

    Set oMailItem = oArchive.NewItem(DvApi32.DvItemTypes.DvEMailItem)

  • Hi riawie,

    Vielen, vielen Dank!

    Das mit @@warten@@ hört sich fantastisch an.

    Kann es aber erst am Mo. in der Firma testen.

    Ich habe dabei auch noch @@Termin +5@@ gefunden.

    Wurde das auch gehen bzw. wie groß darf die Zahl mit den Minuten sein?

    Sind da z.B. 60 Minuten oder mehr möglich?

    Gruß aus Mittelfranken

  • Wurde das auch gehen bzw. wie groß darf die Zahl mit den Minuten sein?

    Sind da z.B. 60 Minuten oder mehr möglich?

    reicht eine Woche?

    Hab ich jedenfalls gerade mal zum Spaß mit @@Termin +10080@@ getestet, der Auftrag wurde einwandfrei zum Versand am nächsten Freitag angenommen :)

  • Hi,

    Die gute Nachricht:

    Beim händischen Erstellen einer E-Mail funktionier das mit @@warten@@ und @@Termin +5@@.

    Es ist auch egal ob groß oder klein geschrieben; es wird angenommen und ausgeführt.


    Die schlechte Nachricht: Wenn ich das Ganze mit VBA-Code mache, funktionier es nicht !?!

    Auch mit Leerzeichen davor/danach nicht?

    Wo ist da der Fehler? (VBA-Quellcode im nächsten Eintrag)

    Heinz

  • Ich habe es jetzt so gelöst, dass ich mit >BodyText.HTMLText< den E-Mail-Text einfüge und die Sende-Verzögerung mit >BodyText.PlainText< mache.

    Wenn es jemand gebrauchen kann, hier eine Lösung mit (Excel)-VBA:

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!