Tags: Kommandozeile, Scripts, E-Mail
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
Verwandte Beiträge
- WuInstall: Windows-Updates installieren über Kommandozeile oder Scripts
- Ubuntu on Windows 10: bash, gcc, sed, ssh, vi nativ als ELF64 ausführen
- Pfad von Dateien anzeigen mit where.exe
- Datum in Batch-Dateien verarbeiten und Wochentag ermitteln
- NirCmd: zusätzliche Befehle für cmd.exe und Batch-Dateien
Weitere Links
11 Kommentare
Wie sieht es mit dem Tool eigentlich auf 64-Bit Plattformen aus?
Gruß, Jürgen
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
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?
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!"
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.