Email versenden mit Office VBA

  • Hi miteinander!

    Emails mittels VBA über Outlook zu versenden ist ja kein Thema...
    Aber wie bau ich das auf DavidFX um?!?
    Hat da jemand eine Idee / Tipp / Lösungsvorschlag?

    Hintergrund:
    Mittels Access erstellten Bericht als Email-Anhang versenden (automatisiert).

    Vielen Dank für's D'rüberlesen

    Gruß
    Daniel

  • Sollte mit der DvAPI klappen.
    Einfach mal die Anleitung/Hilfe lesen :)

    Beste Grüße

    Claudio Carrano (TSCP)
    CARRANO IT-Consulting

    * Ihr Systemhaus für elektronische Kommunikation * Über 25 Jahre Erfahrung *
    ***** Tobit 5-Sterne Partner


    Tobit-Programmierung: Portal, Workflow, DVCC & Add-Ons/Tools und chayns
    Keine Haftung für hier gegebene Antworten!

    Unsere Produkte finden Sie im Tobit Tuning Center
    oder auf unserer Homepage

    info@carrano-it.de
    Tel: +49-6021-451099-0

    Edited once, last by citab (April 1, 2010 at 4:34 PM).

  • Mhhh.. na ja.. den Kommentar spare ich mir mal..

    Der Lösungsweg könnte folgendermaßen aussehen:

    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
    Dim sAdresse As String
    Dim sAufDat As String
    Dim sHinweis As String

    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("email@maxmuster.de", "MAIL", "")
    oMailItem.Subject = "Bestellbestätigung " & sAufDat
    oMailItem.BodyText.HTMLText = "Anbei erhalten Sie Ihre Bestellbestätigung für Ihren Auftrag "
    oMailItem.Options.UserHold = False
    'Set oAttachment = oMailItem.Attachments.Add("c:\Bestellbestätigung.pdf")
    oMailItem.Send


    Fertig :) - Der Code ist nicht von mir - funktioniert aber super..

    Gruß

  • Danke, Forget!

    funktioniert einwandfrei!!
    (Verweis auf DvISE Object API X.X Type Library nicht vergessen!)

    oder als "Late -Binding-Version" ohne Verweis:

    Gruß
    Daniel

    Edited 4 times, last by DonSargo (April 9, 2010 at 1:18 PM).

  • Nachdem ich mich jetzt gezwungender Maßen von Otlook verabschieden muß, bin auch ich genötigt einige meiner VB6 Programme so umzustellen,
    mit David kommunizieren.
    Obiger Code funktioniert. Was mir fehlt ist zum Einen eine Schnittstellen-/Parameterbeschreibung der DVISE API. Wo bekomme ich die her?
    Zum anderen jetzt gleich aktuell 2 Probleme:
    1. Wenn ich statt "xxxxxxx@web.de" ein Stringvariable einsetze folgt die Fehlermeldung: 'DvISE: Bad Parameter'
    2. Anstatt die Mail sofort zu senden (was funktioniert) soll diese in David erst mit allen übergebenen Inhalt geöffnet werden. Eine Eigenschaft wie .view, . display oder .open scheint es ja nicht zu geben.

    Kann jemand helfen?

    M. Schmidt

  • Hallo

    Mit Excel VBA habe ich das mal so gelöst:

    ChDir "C:\Program Files (x86)\Tobit InfoCenter\DVSMAPI\"
    Set myshell = CreateObject("Wscript.shell")
    Anhang = "D:\Temp\Anhang.docx"
    DvsExe = "dvsmapi.exe" & " " & Anhang
    myshell.Run DvsExe

    Damit öffnet sich ein neues Email, mit der als Standard eingestellten Signatur, und dem entsprechenden *.docx als Anhang.

    Pfade natürlich entsprechend anpassen.

    Gruss Urs

  • ich mache es über das normale SendObjects:

    DoCmd.SendObject acSendNoObject, , , Nz(Me.recipients, ""), Nz(Me.cc, ""), , Nz(Me.subject, ""), Nz(Me.txtHeader & Chr(13) & Chr(10) & Chr(13) & Chr(10) & Nz(Me.body, "") & Chr(13) & Chr(10) & Nz(Me.txtFooter, ""), ""), True

    Funktioniert natürlich nur, wenn Tobit der Standardmailclient ist.
    Email wird erstellt und geöffnet, Versand manuell

  • Hallo allerseits,


    das Thema ist ja schon etwas älter, aber ich kämpfe gerade mit dem Code. Den Verweis habe ich gesetzt, soweit funktioniert alles prima.

    Aber 2 Zeilen im Code bereiten mir Schwierigkeiten:

    1.)

    Code
    l = oMailItem.Recipients.Add(Me!EMailAdresse, "MAIL", "")    'l = oMailItem.Recipients.Add("email@maxmuster.de", "MAIL", "")

    ersetze ich die untere Zeile durch den oberen Befehl, erhalte ich die Fehlermeldung:


    Quote

    DvISE: Invalid Adress Object

    Das Feld EMailAdresse ist aus einer Tabelle, die dem E-Mail-Formular zugrunde liegt - ich möchte variable Empfänger ermöglichen.

    2.)

    Code
    Set oAttachment = oMailItem.Attachments.Add(Me!Anlage1Datei)
        'Set oAttachment = oMailItem.Attachments.Add("F:\Access\Releases\Fiedler\2015-04-18 - Externe Berichtsanhänge erfassen und integrieren bis BGVA3\Dokument1.pdf")

    Verwende ich die untere Zeile, geht es. Verwende ich jedoch die obere Zeile (per FileDialog wird der Wert an das Feld übergeben), erhalte ich:


    Quote

    Die Methode 'Add' für das Objekt 'Attachment' ist fehlgeschlagen


    Wo liegt der jeweilige Fehler?

    und noch 2 Fragen:

    1.) Wie kann ich CC und BCC übergeben?

    2.) Kann ich auch mehrere Attachments einfügen?


    Tausend Dank im Voraus für Eure Unterstützung!

    Gruß

    Norbert

  • Der Code von fgret funktioniert einwandfrei!

    Auch das Verwenden einer Variablen für den Empfänger funktioniert.

    ABER, wie bekomme ich den Client dazu, das ich die zu versendende eMail nicht sofort versendet wird, sondert erst zur Kontrolle oder Ergänzung geöffnet wird. :D

    2. Problem: Der in VB6 zusammengebauten Bodytext (Bestehend aus Anrede+Text+Disclaimer) enthält zur Zeilen/Absatztrennung vbcrlf 's also Chr(13)&Chr(10)
    diese werden durch den Client jedoch gekillt und der Text erscheint in einem Block.
    Diese Problem konnte ich lösen der Bodytext stand auf HTMLtext ! :thumbup:


    Kann mir da jemand einen Rat geben?

    Danke.

    elp

  • Hallo,

    ich habe folgenden Code verwendet


    Jedoch bekomme ich immer eine Fehlermeldung beim Ausführen: Objekterstellung durch ActiveX-Komponente nicht möglich
    Bei Verweis habe ich einen Haken vor DvISE Objekt API 1.0 Type Library und bei DvISE infoCenter 1.0 Type Library.

    Der Fehler entsteht laut Programm bei der folgenden Zeile:
    Set oApp = CreateObject("DVOBJAPILib.DvISEAPI")


    Kann mir da einer helfen? Bin ziemlicher Neuling in der Sache.

  • Nachdem ich mich jetzt gezwungender Maßen von Otlook verabschieden muß, bin auch ich genötigt einige meiner VB6 Programme so umzustellen,
    mit David kommunizieren.
    Obiger Code funktioniert. Was mir fehlt ist zum Einen eine Schnittstellen-/Parameterbeschreibung der DVISE API. Wo bekomme ich die her?
    Zum anderen jetzt gleich aktuell 2 Probleme:
    1. Wenn ich statt "xxxxxxx@web.de" ein Stringvariable einsetze folgt die Fehlermeldung: 'DvISE: Bad Parameter'
    2. Anstatt die Mail sofort zu senden (was funktioniert) soll diese in David erst mit allen übergebenen Inhalt geöffnet werden. Eine Eigenschaft wie .view, . display oder .open scheint es ja nicht zu geben.

    Kann jemand helfen?

    M. Schmidt


    Ähnliche Probleme, die ich gestoßen, jede Hilfe, ich danke

  • Hallo zusammen,
    ich beiße mich auch durch das Problem, aus Excel heraus ein Arbeitsblatt als PDF zu exportieren und dann als E-Mail über David zu versenden.

    Eigentlich habe ich 95% im Griff. Aber was mir fehlt ist eine Doku der MAPI Parameter.
    Bei Tobit finde ich eine Beschreibung der API aus 2012. Allerdings kann ich die Hilfetexte unter Windows 10 nicht mehr öffnen :.-(

    Hat jemand eventuell eine Liste oder Doku als PDF?
    Brauche eigentlich nur:
    TO:
    CC:
    BCC:
    Subject:
    Anhang:

    Von einer kompletten API Doku wäre ich natürlich auch nicht abgeneigt ;)

    VG,
    Bert

  • 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.

Participate now!

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