Schreibbüro Richter

E-Mail aus Word (VBA) versenden ohne E-Mail-Client

Gelegentlich möchte man den Versand einer E-Mail in Word, Excel oder überhaupt aus VBA unabhängig von dem auf dem Computer installierten E-Mail-Programm (Client) automatisieren. Das VB Script von → Paul Sadowski kann auch unter VBA eingesetzt werden.


Sub MailVersendenOhneClient()  
' nach dem VB Script von Paul Sadowski  

    Dim objEMail, body

    Const sender = "lisa@server.de"
    Const receiver = "empfaenger@server.de"
    Const subject = "E-Mail-Versand ohne Client"
    Const server = "smtp_mail.server.de"
    Const user = "lisa@server.de"
    Const password = "12345lisa"
    Const schema = "http://schemas.microsoft.com/cdo/configuration/"

    body = "Das ist der Text der E-Mail."

    On Error Resume Next

    Set objEMail = CreateObject("CDO.Message")
    With objEMail
        .From = sender
        .To = receiver
        .subject = subject
        .Textbody = body
        .AddAttachment "d:\test\blabla.doc"
        With .Configuration.Fields
            .Item(schema & "sendusing") = 2
            .Item(schema & "smtpserver") = server
            .Item(schema & "smtpserverport") = 25
            .Item(schema & "smtpauthenticate") = 1
            .Item(schema & "smtpusessl") = True
            .Item(schema & "sendusername") = user
            .Item(schema & "sendpassword") = password
        End With
        .Configuration.Fields.Update
        .Send
    End With

    Set objEMail = Nothing
    If Err.Number <> 0 Then
        MsgBox Err.Number & vbCrLf & Err.Description
    Else
        MsgBox "Mail wurde erfolgreich versendet."
    End If

    On Error GoTo 0

End Sub