Mails aus Batch-Dateien verschicken mit Blat


    Tags: , ,

    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.

    Täglich Know-how für IT-Pros mit unserem Newsletter

    Wir ver­wenden Ihre Mail-Adresse nur für den Ver­sand der News­letter.
    Es erfolgt keine per­sonen­be­zogene Auswertung.

    Bild von Wolfgang Sommergut

    Wolfgang Sommergut hat lang­jährige Erfahrung als Fach­autor, Berater und Kon­ferenz­sprecher zu ver­schie­denen Themen der IT. Da­ne­ben war er als System­ad­mi­ni­stra­tor und Con­sultant tätig.
    // Kontakt: E-Mail, XING, LinkedIn //

    Verwandte Beiträge

    Weitere Links

    11 Kommentare

    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.

    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.

    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>"

    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

    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?

    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!

    Wie wäre es denn DAMIT: https://github.com/muquit/mailsend
    Unterstützt SSL/TLS, ist opensource und funktioniert tadellos aus Batch heraus.