Homepage http://www.guido-studer.ch/
 
           
 
Diverses:      
 
 

Freeware: SMTPsend - Senden von Serienmails via SMTP

Beschreibung

Die Beispiellösung "SMTPsend" demonstriert den Versand von E-Mails über WinSocket mit SMTP (Simple Mail Transfer Protocol). Es wird der Versand von Einzel- und Serien-Nachrichten unterstützt, wobei beim Serien-Versand Detaildaten eingefügt werden können. Die beispielhafte Adressbasis sowie die Detaildatenbasis können mit wenigen Handgriffen extern zugeführt werden, so dass die Daten von fremden Anwendungen übernommen werden.

Folgende Funktionen werden von "SMTPsend" unterstützt:

  • versenden von Einzel- und Serien-Mails
  • Serien-Mails mit Detaildaten bestückbar, individuelle Anrede
  • konfigurierbar für mehrere Absender über Profile
  • beliebige Anzahl Empfänger, Kopien-Empfänger (CC), verdeckte Empfänger (BCC)
  • Nachrichten-Text mit automatischem Zeilenumbruch
  • beliebige Anzahl Attachments (werden einheitlich mit "Base64" kodiert)
  • Attachment-Zuordnung nach Applikationen (im Code erweiterbar)
  • Attachment-Kodierung vor dem Start oder während der Verarbeitung
  • wählbare Zeilenbreite mit automatischem Textumbruch (20-80 Zeichen)
  • freie Angabe einer automatisch zugefügten Signatur
  • freie Angabe eines Computer-Namens (keiner/Computername/feste Vorgabe)
  • freie Angabe von "Message-ID" (keine/automatisch generiert/feste Vorgabe)
  • freie Angabe eines "X-Mailer"
  • Fehlerbehandlung und Auswertung von Server-Antworten
  • automatische/konfigurierbare RAS-Verbindungs-Einwahl beim Start (DFÜ-Netzwerk)
  • wählbare RAS-Verbindungs-Trennung am Ende (nie/immer/nach Abfrage)

Neue oder geänderte Funktionen der Folgeversionen

Neu in der Version 0.2 sind folgende Funktionen implementiert:

  • Autorisierung an SMTP-Server ("AUTH LOGIN", "AUTO PLAIN" mit 2 oder 3 Paramertern)
  • Autorisierung an POP3-Server ("SMTP after POP")
  • besseres Handling von Server-Antworten, jetzt auch mehrzeilige Antworten möglich
  • korrigiertes Detaildaten-Modell, jetzt auch Versand an alle Adressen ohne Dateilzeilen möglich
  • versendete Mails können neu zusätzlich als EML-Dateien abgespeichert werden, welche von Mail-Clients wieder gelesen/dargestellt werden können (von der Oberfläche derzeit nicht unterstützt)

Neu in der Version 0.3:

  • verbesserte Kompatibilität mit diversen Mail-Clients (Zeilenvorschub-Probleme)
  • diverse Korrekturen

Neu in der Version 0.4:

  • keine funktionalen Änderungen der Basis-Module gegenüber der Version 0.3
  • komplett neue, vereinfachte Oberfläche
  • keine Mehrfachempfänger pro Einzelmail, nur mehrere Mails mit je einem Empfänger
  • keine CC- und BCC-Empfänger

Debug und Diagnose

Zu Lern- und Diagnose-Zwecken verfügt das Programm über mehrere einzeln aktivierbare Protokoll-Funktionen, die die WinSocket-Kommunikation mehr oder weniger detailiert dokumentieren:

  • WinSocket-Protokoll im Fenster: Dieses Fenster wird während dem Sendevorgang eingeblendet und kann danach über den entsprechenden Hauptwahl-Punkt betrachtet werden
  • WinSocket-Debug Informationen: Im Direkt-Fenster werden noch detailiertere Informationen gesammelt
  • WinSocket-Protokoll in Datei: In einer wählbaren Textdatei kann der Sendevorgang für die spätere Analyse aufgezeichnet werden.
  • EML-Dateien (ab Version 0.2): Die Mails können in einem Format abgespeichert werden, das von vielen Mail-Clients gelesen werden kann.

Das Programm "SMTPsend" darf nicht als fertige Lösung missverstanden werden, sondern soll als Basis für eigene Erweiterungen und als Ansatz zur Integration dieser Funktionalität in eigene Applikationen dienen.

Oberfläche der Versionen 0.1 bis 0.3

Die Beispieloberfläche besteht aus einer Vielzahl von einzelnen Formularen, welche hier abzubilden weder sinnvoll noch ökonomisch wäre. Deshalb hier zuerst nur einmal einen Blick auf die Hauptsteuerung:


Hauptfenster der Version 0.1 (ähnlich der Version 0.2)

Die beiden folgenden Bilder zeigen die Formulare, welche die Einstellungen der diversen Parameter aus dem Bereich WinSocket und SMTP regeln:


WinSocket-Einstellungen der Version 0.1 (keine Änderungen in der Version 0.2)


Profile/SMTP-Einstellungen der Version 0.1 (stark erweitert in der Version 0.2)

Konsultieren Sie bitte die integrierte Dokumentation, um weitere Informationen über die Funktion von "SMTPsend" zu erhalten.

Oberfläche der Version 0.4

Die Oberfläche der Version 0.4 kommt etwas schlanker und moderner daher, als die der Vorversionen. Sie ist bezüglich einigen Kleinigkeiten auch etwas eingeschränkt: zB. ist die Anzahl Empfänger der selben Mail nicht mehr beliebig, sondern auf einen Empfänger beschränkt, was aber problemlos über das Versenden von mehreren Mails mit jeweils einem Empfänger gelöst werden. Ebenso fehlt die Möglichkeit, CC- und BCC-Empfänger einzutragen. Dies lässt sich aber problemlos nachrüsten, wenn der entsprechende Formularcode erweitert wird.

Neu sind auch alle möglichen Einstellungen auf einer einzigen Seite zusammengefasst. Damit verbunden wurde auch das Verhalten der Version 0.3 eliminiert, das das Beenden des Programms nur über die "Beenden"-Schaltfläche der Hauptwahl zuliess.

Ebenfalls neu können von der Oberfläche keine externen Daten eingemischt werden, wie dies auch bereits bei späteren Version 0.2 etwas angeschränkt war. Ebenso wird die Anrede in der Version 0.4 nicht mehr über die Oberfläche eingefügt, sondern es kann neu eine Variabel im Mailtext verwendet werden, um dies zu tun. Über weitere Variabeln können die Namen, die E-Mail-Adressen oder Angaben zu Datum und Zeit eingemischt werden, ebenso sind einige Systeminformationen derart weitergebbar.

Hinweis für Benutzer einer Version älter als 0.1/13.10.2002

Falls Sie bereits eine ältere Version von "SMTPsend" besitzen und ggf. bereits an Ihre Bedürfnisse angepasst haben, sollten Sie folgende Korrekturen vornehmen, welche Ihre Version auf den Stand 0.1/20.02.2004 bringt:

  • Ändern Sie in der Tabelle "tblAdressen" die Länge des Feldes "Adresse" auf einen grösseren Wert. Die vorgegebenen 50 Zeichen können etwas knapp werden, wie die Erfahrung zeigt.
  • Wechseln Sie im Modul "mdlApplikation" die Funktion "fMemo2Collection" gegen folgende korrigierte Variante aus, damit der Versand von Attachements korrekt funktioniert:

    Function fMemo2Collection(ByVal cMemo As String) As Object
      Dim cEin As String
      Dim cAus As New Collection
      cEin = cMemo
      While InStr(cEin, vbCrLf) > 0
        cAus.Add (Mid$(cEin, 1, InStr(cEin, vbCrLf) - 1))
        cEin = Mid$(cEin, InStr(cEin, vbCrLf) + 2)
      Wend
      Set fMemo2Collection = cAus
    End Function

Die letzte Version 0.1 korrigiert noch weitere Kleinigkeiten, die aber in der Praxis weniger relevant sein dürften. Wenn möglich sollten Sie jedoch zur aktuellen Version 0.2 wechseln, die notwendigen Änderungen an Tabellen sind im Modul "mdlSMTP" dokumentiert.

Hinweis wegen Datumsproblemen in frühen Versionen 0.1 und teilweise 0.2

Bei der Verwendung von Mail-Clients, welche nicht aus der Produktion von Microsoft stammen kann es vorkommen, dass der Datumseintrag nicht richtig erkannt und beispielsweise als "01.01.1970" ausgewiesen wird. Die folgende Änderungen hilft, dieses Problem zu umgehen:

  • Ersetzen Sie im Modul "mdlSMTP" in der Funktion "fSmtpSenden" die beiden Zeilen nach der Kommentarzeile:

    ' Datum/Zeit-Eintrag

    durch die folgenden Zeilen:

    cZeile = "SunMonTueWedThuFriSat" ' englische Wochentag-Abkürzungen
    cSendeDatum = Mid$(cZeile, (Format(Now, "w") * 3) - 2, 3) & ", "
    cZeile = "JanFebMarAprMayJunJulAugSepOctNovDec" ' Monats-Abkürzungen
    cSendeDatum = cSendeDatum & Format(Day(Now), "00") & " " & _
    Mid$(cZeile, (Month(Now) * 3) - 2, 3) & " " & Year(Now) & _
    " " & Time$ & " +0200"

Die Version 0.2 korrigiert selbstverständlich auch dieses Problem.

Verweise

Dieses Programm enthält folgende Elemente, die hier auch einzeln angeboten werden oder auch in verschiedenen anderen Produkten verwendet werden:

  • Enthält das Klassenmodul "FileDialog" mit freundlicher Erlaubnis von Karsten Pries
  • Enthält aus VB5 übersetzter und angepasster Source von John Rhoton, Digital Press (1999)

Für den Betrieb dieses Freeware-Programms benötigen Sie eine lauffähig installierte Version von Microsoft Access 97 oder neuer. Eine funktionierende Internet-Anbindung wäre natürlich auch nicht schlecht, aber über die sollten Sie angesichts der Tatsache, dass Sie diese Seiten im Internet lesen, ja verfügen.

Versionen und Download

Folgende Versionen sind bisher erschienen:

  • Initialrelease 0.1 vom 05.08.2002
  • Version 0.1 vom 20.02.2004 inkl. kleinen Korrekturen
  • Version 0.2 vom 20.08.2005 mit diversen Erweiterungen
  • Version 0.3 vom 06.09.2008 mit diversen Korrekturen und Erweiterungen, Download (266k)
  • Version 0.4 vom 22.10.2008 mit komplett neuer Oberfläche, sonst wie Version 0.3, Download (354k)



Fehler, Probleme, Anmerkungen oder Fragen erreichen mich über das Kontaktformular. Vielen Dank für die aktive Mitarbeit bei der Verbesserung meiner Freeware-Programme!

Weitere Programme finden Sie auf der Übersichtsseite Freeware.



 :
 
 
 
Alle Rechte Guido Studer, Basel - Letzte Änderung: 30.10.2008