Zur Hauptseite ... Zum Onlinearchiv ... Zum Abonnement ... Zum Newsletter ... Zu den Tools ... Zum Impressum ... Zum Login ...

Gedrucktes Heft

Diesen Beitrag finden Sie in Ausgabe 2/2018.

Unser Angebot für Sie!

Lesen Sie diesen Beitrag und 500 andere sofort im Onlinearchiv, und erhalten Sie alle zwei Monate brandheißes Access-Know-how auf 72 gedruckten Seiten! Plus attraktive Präsente, zum Beispiel das bald erscheinende Buch 'Access 2010 - Das Grundlagenbuch für Entwickler'!

Diesen Beitrag twittern

Outlook-Absender einstellen

E-Mails mit Outlook zu verschicken ist von Access aus mittlerweile relativ einfach. Die Übergabe von Empfänger, Cc: oder Bcc:, dem Betreff und dem Inhalt klappt reibungslos, und man kann die Mail entweder direkt versenden lassen oder auch erst noch öffnen und dann per Mausklick versenden. Was nicht trivial ist, ist jedoch das Einstellen der Absenderadresse. Die lässt sich nicht einfach einstellen, sondern muss mit einem kleinen Trick festgelegt werden. Dieser Beitrag zeigt, wie Sie Outlook-E-Mails mit dem gewünschten Absender auf den Weg bringen.

Voraussetzungen

Bevor wir mit der Programmierung starten, fügen Sie dem VBA-Projekt der Zieldatenbank einen Verweis auf die entsprechende Version der Outlook-Bibliothek hinzu. Dazu öffnen Sie etwa mit der Tastenkombination Alt + F11 den VBA-Editor und wählen dann aus der Menüleiste den Eintrag Extras|Verweise aus. Im nun erscheinenden Dialog fügen Sie den Eintrag Microsoft Outlook x.0 Object Library hinzu, wobei x der aktuellen Office-Version entspricht.

Mail mit Standardadresse senden

Der einfachste Code, um eine E-Mail-Adresse zu versenden, sieht wie folgt aus:

Public Sub MailMitStandardadresse()
     Dim objOutlook As Outlook.Application
     Dim objMail As Outlook.MailItem
     Set objOutlook = New Outlook.Application
     Set objMail = objOutlook.CreateItem(olMailItem)
     With objMail
         .Subject = "Testmail"
         .Body = "Dies ist eine Testmail."
         .To = "info@access-im-unternehmen.de"
         .Send
     End With
End Sub

Damit wird die Mail mit der standardmäßig in Outlook eingestellten E-Mail-Adresse verschickt. Aber welche ist die Standardadresse? Diese finden wir etwa in Outlook 2016 heraus, wenn wir im Ribbon auf den Reiter Datei klicken und dort die Schaltfläche Kontoeinstellungen|Kontoeinstellungen betätigen (siehe Bild 1).

Kontoinformationen öffnen

Bild 1: Kontoinformationen öffnen

Es erscheint dann der Dialog Kontoeinstellungen (siehe Bild 2). Die standardmäßig verwendete Absenderadresse ist hier mit einem entsprechenden Symbol markiert. Um eine andere Adresse zu nutzen, markieren Sie einen der anderen Einträge und betätigen die Schaltfläche Als Standard festlegen.

Ermitteln der Standard-Absenderadresse in Outlook

Bild 2: Ermitteln der Standard-Absenderadresse in Outlook

Absender von Access aus verwalten

Nun wissen wir, dass Access/VBA beim automatisierten Versenden von E-Mails immer die Standardadresse verwenden. Das wollen wir nun ändern, denn es kann ja auch sein, dass Sie etwa einen Newsletter von einer Datenbank aus versenden wollen und dabei eine andere Absenderadresse nutzen wollen als die Standardadresse, die Sie für die private oder geschäftliche Kommunikation nutzen.

Dies erledigen wir wie in der folgenden Prozedur. Die Konten können wir über die Accounts-Auflistung der Session-Eigenschaft von objOutlook durchlaufen. Wir suchen dabei in einer For Each-Schleife nach dem Account-Objekt, dessen Eigenschaft DisplayName der gewünschten Absender-Adresse entspricht und verlassen die Schleife, wodurch objAccount nun mit dem passenden Account gefüllt ist.

Am Ende der Schleife stellen wir objAccount immer auf Nothing ein, damit wir, wenn die Schleife endet, ohne dass wir einen passenden Account gefunden haben, in der folgenden If...Then-Bedingung herausfinden können, ob überhaupt ein passender Account gefunden wurde.

Falls wir einen Account gefunden haben, wird dieser für die aktuelle E-Mail über die Eigenschaft SendUsingAccount als Absender-Account eingestellt. Anderenfalls erscheint einee entsprechende Meldung:

Public Sub MailMitAlternativerAbsenderadresse()
     Dim objOutlook As Outlook.Application
     Dim objMail As Outlook.MailItem
     Dim objAccount As Outlook.Account
     Dim strAbsender As String
     strAbsender = "info1@amvshop.de"
     Set objOutlook = New Outlook.Application
     Set objMail = objOutlook.CreateItem(olMailItem)
     For Each objAccount In objOutlook.Session.Accounts
         If objAccount.DisplayName = strAbsender Then
             Exit For
         End If
         Set objAccount = Nothing
     Next objAccount
     If Not objAccount Is Nothing Then
         With objMail
             .SendUsingAccount = objAccount
             .Subject = "Testmail"
             .Body = "Dies ist eine Testmail."
             .To = "info@access-im-unternehmen.de"
             .Display
     '        .Send
         End With
     Else
         MsgBox "Account mit '" & strAbsender & "' nicht gefunden."
     End If
End Sub

© 2003-2015 André Minhorst Alle Rechte vorbehalten.