Beiträge von Heinz

    Gibt es hier schon eine Lösung?


    Excel (64bit) stürz ab wenn ich über VBA und über DvApi32 eine Mail versende!

    Excel unter Win11 stürzt bei >> „oMailItem.Send“ << ab und startet dann sofort wieder.


    Unter Win7 (Office 2016, 32bit) funktionier es einbandfrei!
    Ich habe ein David-Version aus 2018.

    Code
    'E-Mail senden (über David aus EXCEL)
       l = oMailItem.Recipients.Add(mMail_Adresse, "MAIL", "")
       oMailItem.Subject = sMail_Betreff                'Betreff-Text
       oMailItem.BodyText.HTMLText = sM_Text            'E-Mail-Text
       oMailItem.BodyText.PlainText = mMail_Termin      'Verzögern ("@@Termin +__@@")
       oMailItem.Options.UserHold = False               'nicht warten
       oMailItem.Options.Priority = 0                   '0=Normal
       Set oAttachment = oMailItem.Attachments.Add(sMail_AnhangOrt)
       oMailItem.Send                                   'absenden 

    Das funktioniert unter Win7 (Excel 2016) seit Wochen perfekt.

    Unter Win11 (Excel 2021) stürzt Excel bei „oMailItem.Send“ immer ab – die Mail wird nicht versendet!


    Hat jemand sowas schon gehabt?

    Kann es an irgend welchen Windows-Rechten liegen?

    Ich habe es jetzt mehrmals getestet – es funktioniert!


    Irgendwelche Nebeneffekte konnte ich (bis jetzt) nicht feststellen.


    Mit >BodyText.HTMLText< kann der (sichtbare) E-Mail-Text eingefügt und
    gleichzeitig
    mit >BodyText.PlainText< kann die (unsichtbare) Sende-Verzögerung in Minuten

    eingestellt werden (Code: siehe vorhergehenden Eintrag).

    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:

    Kann >BodyText.HTMLText< und >BodyText.PlainText< in einer E-Mail unter VBA (Excel) gleichzeitig und gemeinsam verwendet werden?
    Gibt es hier irgendwelche Nachteile oder Bedenken?

    Code
      oMailItem.BodyText.HTMLText = "<b> Com.: Testobjekt </b>"     'MailText
      oMailItem.BodyText.PlainText = "@@Termin +5@@"     'Sende-Verzögerung

    Der Grund:

    Die David-Steuerfunktion >"@@Termin +5@@"< funktioniert innerhalb eines HTML-Textes (bei mir) nicht.

    Ggf. müssen da noch weiter HTML-Steuerbefehle mit eingefügt werden??
    Wen ja, Welche?


    Habe es bisher nicht hin bekommen, dass diese Steuerfunktion im HTML-Text erkannt wird.

    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

    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)

    Sorry, bin neu hier!


    Ich suche vergeblich nach eine Möglichkeit unter Excel-VBA eine

    E-Mail mit Anhang zu erstellen und nicht(!) gleich zu versenden.

    Im Netz gibt’s halt kaum was über Tobit/David unter VBA.


    Die vorgenannte Hilfe hilft mir dabei aber auch nicht wirklich weiter.

    Option Explicit
    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 = "That it is
    "
    oMailItem.Options.UserHold = True
    Set oAttachment = oMailItem.Attachments.Add("c:\\Images\\logo.jpg", "cid:myimgcid")

    oMailItem.Fields("Priority").Value = 0 '0 = Normal, 1 = Low, 2 = Important
    ''''' diese Anweisung funktioniert nicht! - was muss hier geändert werden?

    oMailItem.Send ' E-Mail absenden

    Set oApp = Nothing
    Set oAccount = Nothing
    Set oArchive = Nothing
    Set oMailItem = Nothing

    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

    Der Programm-Code oben funktioniert bei mir (mit oMailItem.Send).


    Wie kann ich jedoch eine E-Mail anlegen und NICHT senden, sondern unter Entwürfe ablegen ?


    Mit MailItem.save funktionierte es nicht.