Die Community zu .NET und Classic VB.
Menü

FAQ 0087: Wie kann ich Mails versenden und empfangen?

 von 

Frage 

Wie kann ich Mails versenden und empfangen?

Wie kann ich Dateien an meine Mails anhängen?

Wie kann ich einen Zeilenumbruch erzeugen?

Winsock  

Folgende Tipps zeigen, wie man Mails mit Winsock versenden und empfangen kann:

Eine Besonderheit ergibt sich, wenn der SMTP-Server eine Authentifizierung fordert: Der Tipp 0051 kann dies nicht, man muß es ihm beibringen.
Unser gelegentlicher Besucher madmax hat sich bereits die Mühe gemacht und eine entsprechende Klasse geschrieben: ESMTP Klasse (hier ist eine Modifikation mit aufgelösten Abhängigkeiten zu finden).
Hinweis: Die Eigenschaft SMTPHost benennt den Postausgangsserver (also den Server, der die Mail annimmt und an die Empfänger weiterreicht).

Sollen Dateien angehängt werden, so müssen sie geeignet kodiert und in den Text eingefügt werden.
Eine geeignete Kodierung ist eine, bei der kein ASCII-Zeichen unter ASC 32 und über ASC 127 liegt. Dafür bietet sich Base64 an.
Wie man Daten mit Base64 kodiert, zeigt der Base64-Kodierung [Tipp 0504].
In der zuvor genannten ESMTP Klasse ist diese Funktionalität bereits integriert.

Der Artikel Sending attachments within e-mail messages auf vbip.com zeigt, wie man dies umsetzen kann.

Passend zur SMTP-Klasse durfte bei der Weihnachtsausschreibung 2004 eine POP3-Klasse geschrieben werden. Die POP3-Klasse von Matthias May, der die Ausschreibung gewann, ist im Einsendungsarchiv zu finden.

Standard-Mail-Client  

Möchte man sich nicht vorher auf einen bestimmten Mail-Client festlegen, kann man Windows überlassen, welchen Mail-Client es öffnet.
Wie das geht, zeigt der Standard E-Mail-Client mit Parametern starten [Tipp 0090]. Zu beachten ist, daß der Tipp nicht funktioniert, wenn auf dem System kein Mail-Client installiert ist.

Ein paar wichtige Informationen (auch zum Zeilenumbruch im Text) finden sich bei SelfHTML:
E-Mail-Verweise

Manche Mail-Clients erlauben auch das Anhängen von Dateien über die Kommandozeile.
Die folgenden Kommandozeilenargumente können bei einigen E-Mail-Programmen zum Anhängen von Dateien genutzt werden. Hier muß man ein wenig testen, es wird aber nicht immer funktionieren:

  • att
  • attach
  • attachment

Microsoft Outlook  

Mit Microsoft Outlook kann man selbstverständlich auch Mails senden und empfangen.
Einen entsprechenden Tipp haben wir nicht, wir können nur ein Tutorial anbieten:
MAPI: Mails senden & empfangen

Problematisch kann dabei das Funktionsmerkmal neuerer Outlook-Versionen werden, welches meldet, wenn eine fremde Software über die Outlook-Bibliothek MAPI versucht, Mails zu senden oder zu empfangen. Outlook Redemption kann hier Abhilfe schaffen.

Ein Artikel zu MAPI in der Microsoft Knowledge Base:
INFO: Updated Mapivb32.bas for Simple MAPI on 32-Bit Platforms

Folgendes wurde von Udo Schmidt gepostet:
Microsoft Office 2000/Visual Basic Programmer's Guide: Signing a VBA Project

vbSendMail.dll  

Die vbSendMail.dll kann man bei www.freevbcode.com bekommen.
Wie man sie benutzt, zeigt der E-Mails im HTML-Format mit Attachments versenden [Tipp 0260].

Novell GroupWise  

Bei Novell kann man sich ein Beispiel herunterladen, in dem das Versenden und Empfangen von Mails demonstriert wird.
Der geneigte Softwareentwickler sei aber gewarnt: bei eigenen Tests lief die Demo nur zu etwa 75% zuverlässig. Leider wird der Entwickler bei einem Fehlschlag nicht darauf hingewiesen, Fehlermeldungen werden einfach verschluckt.

Lotus Notes  

Wie man mit Lotus Notes Mails versenden und empfangen kann, zeigt ein Eintrag der FAQ bei www.vbcity.com.

Visual Basic .NET  

VB.NET bietet ebenfalls die Möglichkeit, Mails zu senden:
How To Send E-mail Programmatically with System.Web.Mail and Visual Basic .NET

Ihre Meinung  

Falls Sie Fragen zu dieser FAQ haben, Ihre Erfahrung mit anderen Nutzern austauschen möchten oder auf eine Ergänzung hinweisen möchten, dann teilen Sie uns diese bitte in einem der unten vorhandenen Themen oder über einen neuen Beitrag mit. Hierzu können sie einfach einen Beitrag in einem zum Thema passenden Forum anlegen, welcher automatisch mit dieser Seite verknüpft wird.