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 sagt:
    1. Dezember 2011 - 17:33

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

    Bild von Wolfgang Sommergut
    1. Dezember 2011 - 22:32

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

    Bild von hartkorn
    hartkorn sagt:
    2. Dezember 2011 - 10:37

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

    Bild von Wolfgang Sommergut
    2. Dezember 2011 - 10:57

    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 sagt:
    12. Dezember 2011 - 13:40

    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
    12. Dezember 2011 - 15:22

    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 sagt:
    1. März 2013 - 12:06

    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 sagt:
    15. Mai 2014 - 15:26

    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 sagt:
    16. Mai 2014 - 16:25

    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
    16. Mai 2014 - 16:26

    Hallo Dennis, danke für den Hinweis!