Mails aus Batch-Dateien verschicken mit Blat

Es gehört zum Standardrepertoire von Monitoring-Tools, dass sie beim Auftreten bestimmter Ereignisse Mails an den Admin versenden. Auch die Ereignisanzeige von Windows ist dazu in der Lage. Darüber hinaus kann es aber auch notwendig sein, dass man Nachrichten aus eigenen Scripts heraus versendet. Windows bietet kein Kommandozeilen-Tool, das diese Aufgabe in Batch-Dateien übernehmen kann. Das Open-Source-Programm Blat füllt die Lücke.

Wie bei Kommandozeilen-Tools häufig der Fall, besteht Blat aus einer einzelnen .exe-Datei und muss nicht installiert werden. Allerdings besteht die Möglichkeit einer Art nachträglichen Installation, mit der sich die Werte für SMTP- oder POP3-Server sowie die Absenderadresse in Profilen speichern lassen. Blat legt diese Daten in der Registry ab. Ihre Angabe kann damit bei späteren Aufrufen des Programms entfallen.

Beispielsweise würde man die Werte für den SMTP-Server und die Absenderadresse folgendermaßen im Standardprofil hinterlegen:

blat -install smtp.MyDomain.de meine@mail-adresse.de

Zahlreiche Schalter und Optionen

Trotz dieser Arbeitserleichterung bleiben immer noch genügend Schalter und Parameter übrig, mit der man die Ausführung des Tools steuern kann. Ruft man Blat mit dem Argument /? auf, dann wird man von den mehrere Bildschirmseiten füllenden Optionen regelrecht erschlagen, weil das Programm insgesamt viele Funktionen bietet. Diese reichen vom Versenden von Anhängen über cc: und bcc: bis zur Spezifizierung von Signature-Dateien und Zeichensätzen oder der Codierung mit Base64.

In der Praxis wird man jedoch in den meisten Fällen mit einer überschaubaren Zahl an Argumenten auskommen. Ein Beispielaufruf könnte so aussehen:

blat -body "Das ist ein Test" -subject Test -u User -pw Passwort -to rc@gmail.com

Zu den unabkömmlichen Angaben zählen die Adresse des Empfängers, der Betreff und der Inhalt der Nachricht sowie der Benutzername und das Passwort, wenn man sich wie heute üblich am SMTP-Server authentifizieren muss. Der Nachrichtentext kann entweder vom Kommandozeilenargument -body oder aus einer Datei stammen, die man mit dem Parameter -bodyF übermitteln muss.

Anmeldung mittels SMTP-Auth

Für die Anmeldung verwendet Blat standardmäßig SMTP-Auth, das von den meisten SMTP-Servern akzeptiert wird. Verbindungen über SSL unterstützt die Software jedoch nicht, so dass ein Versand von Nachrichten über große Web-Mailer wie Google Mail oder Hotmail nicht funktioniert. In diesem Fall hilft der flankierende Einsatz eines SSL-Proxy wie stunnel. Eine Anleitung für die Konfiguration dieser Kombination gibt es hier.

Da stunnel jedoch als Dienst installiert und konfiguriert werden muss, stellt sich vermutlich die Frage, ob sich der Aufwand lohnt. In den meisten Fällen wird es einfacher sein, einen alternativen SMTP-Server zu wählen.

10 Kommentare

Bild von Jürgen
Jürgen (Besucher) sagt:

Wie sieht es mit dem Tool eigentlich auf 64-Bit Plattformen aus?
Gruß, Jürgen

Bild von Wolfgang Sommergut

Ich habe es auf Windows 7 x64 ausprobiert und es hat problemlos funktioniert.

Bild von hartkorn
hartkorn (Besucher) sagt:

Ich mache das immer hiermit. Das geht am einfachsten und am schnellsten: http://www.paulsadowski.com/wsh/cdo.htm

Bild von Wolfgang Sommergut

Wenn man Scriptsprachen wie Powershell oder VBScript verwendet, die eigene Methoden zum Versand von E-Mails bieten, dann wird man dort normalerweise kein externes Programm aufrufen. Aber für Batch-Dateien ist Blat eine gute Lösung.

Bild von Stefan Frühwirth
Stefan Frühwirth (Besucher) sagt:

Wie bekomme ich es hin, das beim Versenden einer email (mit blat) der Empfänger anstatt der Absenderadresse den Absendername angezeigt wird?

Bild von Wolfgang Sommergut

Indem man die Absenderadresse im Format
Vorname Nachname <info@mymail.com>
eingibt, also zum Beispiel

blat -install smtp.meine-domain.de "Stefan Frühwirt <sf@hotmail.com>"

Bild von Johannes Schewitz
Johannes Schewitz (Besucher) sagt:

Klappt ja wunderbar.

Ich bräuchte noch einen Tipp:

Kann man irgendwie exportieren, ob es geklappt hat? (Damit die versendete Datei gelöscht werden kann).
z.B.

Wenn kein Fehler
lösche abc.txt

Johannes Schewitz

Bild von Dennis
Dennis (Besucher) sagt:

Neuerdings gibt es ja faktisch keine E-Mail-Anbieter mehr, die ohne SSL auskommen. Blat unterstützt leider kein SSL. Installieren von stunnel scheidet in meinem Fall aus, da ich Blat in einem Skript verwende, das auf verschiedenen Computern vom USB-Stick oder vom Fileserver aus gestartet wird.

Haben Sie einen Tip für mich?
Evtl. einen Freemail-Provider, der ohne ssl auskommt oder eine "portable" Version von stunnel?

Bild von Dennis
Dennis (Besucher) sagt:

Wer noch ein ähnliches Problem hat, die Lösung:

https://www.smart-mail.de/

Dieser Freemailer wirbt sogar damit:
" Bei uns können Sie selbst entscheiden, ob Sie E-Mails mit oder ohne SSL/TLS-Verschlüsselung versenden und ob Sie Ihre E-Mails zertifiziert verschlüsseln oder nicht!"

Bild von Wolfgang Sommergut

Hallo Dennis, danke für den Hinweis!

Kommentar hinzufügen

Der Inhalt dieses Feldes wird nicht angezeigt. Wenn mit Ihrer angegebenen Mail-Adresse ein Gravatar verknüpft ist, dann wird dieser neben Ihrem Kommentar eingeblendet.
  • Internet- und E-Mail-Adressen werden automatisch umgewandelt.
  • Zulässige HTML-Tags: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Zeilen und Absätze werden automatisch erzeugt.
  • Mail-Adressen werden im Seitenquelltext unkenntlich gemacht, um sie vor dem automatischen Erfassen durch Spammer zu schützen.

Weitere Informationen über Formatierungsoptionen