FAQ 0087: Wie kann ich Mails versenden und empfangen?
von Helge Rex
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:
- E-Mails via Winsock versenden [Tipp 0051]
- E-Mails empfangen via Winsock [Tipp 0071]
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.