Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

E-Mails aus Excel über SMTP-Server

Forumthread: E-Mails aus Excel über SMTP-Server

E-Mails aus Excel über SMTP-Server
08.09.2006 15:31:50
Holger
Hallo zusammen,
gibt es eine Möglichkeit über Excel E-Mails an einen SMTP-Server zu übergeben ?
Das ich E-Mails an Outlook übergebe, habe ich schon hinbekommen. Da kenne ich mich also aus.
Wollte nur jetzt in unserer Firma die E-Mails direkt an den Mail-Server übergeben. (SMTP)
Gruss und schon mal Vielen Dank
Holger Wächter
Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: E-Mails aus Excel über SMTP-Server
08.09.2006 18:48:11
Holger
Habe die Antwort inzwischen selber raus gefunden. Hier die Lösung:

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
<a href=".Item("http://schemas.microsoft.com/cdo/configuration/sendusing")">.Item("http://schemas.microsoft.com/cdo/configuration/sendusing")</a> = 2
<a href=".Item("http://schemas.microsoft.com/cdo/configuration/smtpserver")">.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver")</a> = "SMTP Server - Adresse einfügen"
<a href=".Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport")">.Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport")</a> = 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

Einfach SMTP Server eintragen und Empfänger EMail Adresse und die E-Mail wird versandt.
Gruss
Holger Wächter
Anzeige
AW: E-Mails aus Excel über SMTP-Server
08.09.2006 18:50:19
Holger
Ich nochmal:
Dieses
und danach das

jeweils weg lassen. Das kam beim rein kopieren.
Gruss
Holger Wächter
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige

Infobox / Tutorial

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.

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Füge ein neues Modul ein: Rechtsklick auf "VBAProject (deine Arbeitsmappe)" > Einfügen > Modul.
  3. 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
  1. 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.
  2. Schließe den VBA-Editor und führe das Makro aus.

Häufige Fehler und Lösungen

  • Fehler: E-Mail wird nicht gesendet

    • Überprüfe die SMTP-Server-Adresse und den Port. Stelle sicher, dass die Firewall den SMTP-Verkehr zulässt.
  • Fehler: "Objekt nicht gefunden"

    • Vergewissere dich, dass du die CDO-Bibliothek korrekt referenziert hast. Dies geschieht automatisch, wenn du die CreateObject-Methode verwendest.

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:

  1. Automatisierte Berichterstattung: Versende regelmäßig Berichte an ein Team oder einen Vorgesetzten.
  2. 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.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige