Mail versenden mit Pdf-Anhang

  • Excel

    Mail versenden mit Pdf-Anhang

    Hallo alte Hasen,

    hier ist vor fast vier Jahren ein Beitrag zum Versenden von Emails mit Anhang aus Excel heraus geschrieben worden.
    Schön kurz und funktioniert auch ohne Outlook und immer noch mit Excel 2008.

    Kann mir jemand helfen, die Zeilen so anzupassen, dass man
    1. beliebige Anhänge ranhängen kann
    2. Nachrichtentext übergeben kann und
    3. vor dem eigentlichen Versenden nochmal quittieren muss, d.h. sieht, was genau rausgeht.

    Die Lesebestätigung funktioniert bei mir offenbar nicht. Außerdem scheint der .SendMail dann gar keine weiteren Argumente zu verwenden.
    Hier die Zeilen von damals:

    Visual Basic-Quellcode

    1. Sub SendAutomaticMail()
    2. Dim objWB As Workbook
    3. Set objWB = Excel.Application.ActiveWorkbook
    4. With objWB 'Empfänger Subject Empfangsbestätigung
    5. .SendMail "user@web.de", "Surprise !", True
    6. End With
    7. End Sub

    Ein völlig anderer Versuch, den ich ebenfalls aus anderen Schnipseln zusammen gebastelt habe, ist folgender:

    Visual Basic-Quellcode

    1. Private Declare Function ShellExecute Lib "Shell32.dll" _
    2. Alias "ShellExecuteA" (ByVal hWnd As Long, _
    3. ByVal lpOperation As String, ByVal lpFile As String, _
    4. ByVal lpParameters As String, ByVal lpDirectory As String, _
    5. ByVal nShowCmd As Long) As Long
    6. Private Sub Mail( _
    7. eMail As String, _
    8. Optional Subject As String, _
    9. Optional Body As String, _
    10. Optional Attachments As String)
    11. Call ShellExecute(0&, "Open", "mailto:" + eMail + _
    12. "?Subject=" + Subject + "&Body=" + Body, "", "", 1)
    13. End Sub
    14. Sub MailVersenden()
    15. Dim sMail As String, sSubject As String
    16. Dim sBody As String
    17. Dim strAttPfad As String
    18. Dim sAttachments As String
    19. Dim strPathName As String
    20. strPathName = Worksheets("alle aktuell").Range("S1").Value ' Pfad für Anhang steht in dieser Zelle
    21. sMail = Worksheets("alle aktuell").Range("X14").Value
    22. ' Emailadressen aller Empfänger stehen in einer unsichtbaren Zelle der Tabelle
    23. sSubject = "Testmail aus Excel"
    24. sBody = "Liebe Kolleginnen und Kollegen, " & vbCrLf & vbCrLf & _
    25. "hier ist der aktuelle Plan, versendet am " & Date & " um " & Time & vbCrLf & vbCrLf & vbCrLf & _
    26. "Mit freundlichen Grüßen, " & vbCrLf & _
    27. Application.UserName
    28. sAttachments = strPathName
    29. Call Mail(sMail, sSubject, sBody, sAttachments)
    30. End Sub
    Ehrlich gesagt, außer meinem Versuch, logisch zu denken, habe ich hier wenig beizusteuern. Ich bin völliger Autodidakt. Dennoch funktioniert letzteres auch schon soweit, dass Excel allein weiß, dass ich gern Thunderbird nehme. Es trägt eine ganze Gruppe von Empfängern ein (allerdings wäre mir lieber, wenn ich auch CC: oder BCC: festlegen könnte), Absender stimmt auch. Und ich sehe alles noch einmal, kann also abbrechen, senden oder auch Text ändern und von Hand Anhänge zufügen.

    Aber die gewünschte(n) Datei(en) wird nicht von allein angehängt und Zeilenumbrüche im Nachrichtentext gelingen auch nicht.

    Wahrscheinlich bin ich kurz davor. Sieht jemand, was ich rausschmeißen oder hinzufügen muss. Vielleicht irgend so ein Add-Befehl. Hab zu wenig Ahnung.

    Schon mal vielen Dank an alle, die mir weiterhelfen wollen.
    MfG, dePauka

    P.S. Wieso sind die Einrückungen wieder raus? Ich komme mit dem Editor hier nicht ganz klar.