E-Mails aus Excel über SMTP-Server versenden
Schritt-für-Schritt-Anleitung
Um E-Mails aus Excel über einen SMTP-Server zu versenden, kannst du den folgenden VBA-Code verwenden. Dieser Code nutzt CDO (Collaboration Data Objects), um E-Mails direkt über den SMTP-Server zu senden.
- Öffne Excel und drücke
ALT + F11
, um den VBA-Editor zu öffnen.
- Füge ein neues Modul ein: Rechtsklick auf "VBAProject (deine Arbeitsmappe)" >
Einfügen
> Modul
.
- Kopiere den folgenden Code in das Modul:
Sub Mail_Small_Text_CDO()
Dim iMsg As Object
Dim iConf As Object
Dim strbody As String
Dim Flds As Variant
Set iMsg = CreateObject("CDO.Message")
Set iConf = CreateObject("CDO.Configuration")
iConf.Load -1 ' CDO Source Defaults
Set Flds = iConf.Fields
With Flds
.Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "SMTP Server - Adresse einfügen"
.Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
.Update
End With
With iMsg
Set .Configuration = iConf
.To = "Empfänger@web.de"
.Cc = ""
.Bcc = ""
.From = "Mir selber !!!"
.Subject = "Wichtige Nachricht"
.TextBody = "Es hat geklappt !!!"
.Send
End With
Set iMsg = Nothing
Set iConf = Nothing
End Sub
- Ersetze
"SMTP Server - Adresse einfügen"
mit der Adresse deines SMTP-Servers und "Empfänger@web.de"
mit der E-Mail-Adresse des Empfängers.
- Schließe den VBA-Editor und führe das Makro aus.
Häufige Fehler und Lösungen
Alternative Methoden
Eine weitere Möglichkeit, E-Mails aus Excel zu senden, besteht darin, Outlook über VBA zu steuern. Hier ist ein einfaches Beispiel:
Sub SendEmailOutlook()
Dim OutlookApp As Object
Dim MailItem As Object
Set OutlookApp = CreateObject("Outlook.Application")
Set MailItem = OutlookApp.CreateItem(0)
With MailItem
.To = "Empfänger@web.de"
.Subject = "Test E-Mail"
.Body = "Das ist eine Testnachricht."
.Send
End With
Set MailItem = Nothing
Set OutlookApp = Nothing
End Sub
Diese Methode kann nützlich sein, wenn du bereits Outlook für deine E-Mails verwendest.
Praktische Beispiele
Hier sind einige praktische Anwendungen des VBA SMTP Codes:
- Automatisierte Berichterstattung: Versende regelmäßig Berichte an ein Team oder einen Vorgesetzten.
- Benachrichtigungen: Informiere dich über wichtige Ereignisse oder Änderungen in einer Excel-Tabelle, indem du automatische E-Mails sendest.
Tipps für Profis
- Debugging: Verwende
Debug.Print
in deinem Code, um Werte zu überprüfen, wenn E-Mails nicht gesendet werden.
- Sicherheit: Stelle sicher, dass E-Mail-Konto und Passwort sicher sind, insbesondere wenn du in einer Unternehmensumgebung arbeitest.
- Testumgebung: Teste deine E-Mail-Funktionalität in einer sicheren Umgebung, bevor du sie live schaltest.
FAQ: Häufige Fragen
1. Welche Excel-Version benötige ich für CDO?
Du kannst CDO in Excel 2007 und späteren Versionen verwenden. Es ist wichtig, dass Microsoft Outlook installiert ist, wenn du die Outlook-Methode verwendest.
2. Kann ich Anhänge mit dem SMTP-Code senden?
Ja, du kannst Anhänge hinzufügen, indem du die .AddAttachment
-Methode des iMsg
-Objekts verwendest.
3. Was ist der Unterschied zwischen CDO und Outlook VBA?
CDO ermöglicht das Senden von E-Mails direkt über einen SMTP-Server, während die Outlook-VBA-Methode Outlook zur Verwaltung der E-Mails verwendet.