"From" Adresse bei VBA Mailen mit Outlook
Schritt-für-Schritt-Anleitung
Um eine E-Mail über VBA in Outlook zu senden und dabei eine "From"-Adresse anzugeben, kannst du den folgenden Code nutzen. Dieser Code funktioniert nur, wenn du über einen Exchange-Server verfügst, da die .SentOnBehalfOfName
-Eigenschaft nur dort wirksam ist.
Sub Mailen()
Dim olapp As Object, aws As String
Application.DisplayAlerts = False
With ActiveWorkbook
.Save
aws = .FullName
Set olapp = CreateObject("Outlook.Application")
With olapp.CreateItem(0)
.SentOnBehalfOfName = "huhu@eule.de" ' Die Adresse, die als Absender angezeigt wird
.To = "empfänger@server.de"
.cc = "mail1@server.de,mail2@server.de,mail3@server.de"
.bcc = "mail1@server.de,mail2@server.de,mail3@server.de"
.Subject = "Mein Betreff"
.HtmlBody = "Mein Textinhalt"
.ReadReceiptRequested = True
.Attachments.Add aws
.Display ' Mail anzeigen
.Send ' Mail senden
End With
End With
Set olapp = Nothing
Application.DisplayAlerts = True
End Sub
Häufige Fehler und Lösungen
-
SentOnBehalfOfName not working: Wenn die .SentOnBehalfOfName
-Eigenschaft nicht funktioniert, kann es daran liegen, dass du keinen Exchange-Server verwendest. Stelle sicher, dass du die richtige Serverkonfiguration hast.
-
Mail wird im eigenen Postfach gespeichert: Wenn die gesendete E-Mail im eigenen Postfach und nicht im gemeinsamen Postfach gespeichert wird, stelle sicher, dass du Mitglied der entsprechenden Distribution Group bist.
-
Antwortadresse nicht korrekt: Wenn der Empfänger beim Antworten nicht die richtige Adresse sieht, überprüfe die Einstellungen des gemeinsamen Postfachs und ob du die richtigen Berechtigungen hast.
Alternative Methoden
Wenn du keinen Exchange-Server hast oder die .SentOnBehalfOfName
-Eigenschaft nicht nutzen kannst, gibt es alternative Lösungen. Du kannst:
-
Outlook VBA Forward Email verwenden: Statt eine neue E-Mail zu erstellen, kannst du eine bereits empfangene E-Mail weiterleiten und dabei die „From“-Adresse anpassen.
-
Gemeinsame Postfächer manuell verwenden: Verwende das gemeinsame Postfach direkt, indem du es als zusätzliches Konto hinzufügst, und sende E-Mails von dort.
Praktische Beispiele
Hier ist ein Beispiel, wie du eine E-Mail von einem gemeinsamen Postfach senden kannst, wenn du diese als zusätzliches Konto konfiguriert hast:
Sub SendFromSharedMailbox()
Dim olapp As Object
Set olapp = CreateObject("Outlook.Application")
With olapp.CreateItem(0)
.SentOnBehalfOfName = "gemeinsames@postfach.de" ' Adresse des gemeinsamen Postfachs
.To = "empfänger@server.de"
.Subject = "Betreff"
.Body = "Inhalt der E-Mail"
.Send
End With
Set olapp = Nothing
End Sub
Tipps für Profis
-
Verwende die .Display
-Methode, um die E-Mail vor dem Senden anzuzeigen. So kannst du sicherstellen, dass alles korrekt ist.
-
Wenn du regelmäßig mit E-Mails über VBA arbeitest, speichere deine häufig verwendeten Einstellungen in Variablen, um den Code sauberer und wartungsfreundlicher zu gestalten.
-
Halte deine Outlook-Version aktuell, um Komplikationen mit VBA-Skripten zu vermeiden.
FAQ: Häufige Fragen
1. Funktioniert die SentOnBehalfOfName
-Eigenschaft auch ohne Exchange-Server?
Nein, die SentOnBehalfOfName
-Eigenschaft funktioniert nur, wenn du mit einem Exchange-Server verbunden bist.
2. Wie kann ich feststellen, ob ich mit einem Exchange-Server verbunden bin?
Gehe in Outlook zu „Kontoeinstellungen“ und überprüfe die Art deines Kontos. Wenn es sich um ein Exchange-Konto handelt, wird dies dort angezeigt.
3. Was ist ein gemeinsames Postfach?
Ein gemeinsames Postfach ist ein Konto, das von mehreren Benutzern in einem Unternehmen genutzt werden kann, um E-Mails zu senden und zu empfangen, sodass alle Mitglieder des Teams auf die gleichen Informationen zugreifen können.
4. Wie kann ich die Rücksendeadresse ändern?
Die Rücksendeadresse wird in der Regel automatisch auf die Adresse gesetzt, die du in der SentOnBehalfOfName
-Eigenschaft angegeben hast, wenn du die richtigen Berechtigungen hast.