Im Download-Bereich der österreichischen Firma DataEnter findet sich das kleine Tool SMTPSend. Mit dessen Hilfe lassen sich E-Mails aus anderen Programmen oder Skripten via SMTP an einen E-Mail-Server versenden.
Im Archiv findet sich lediglich eine Exe- und eine Text-Datei. Eine Installation ist nicht notwendig. Die Syntax ist einfach und die Erklärungen in der beiliegenden Text-Datei ausreichend.
Um Probleme bei der Zustellung via SMTP besser erkennen zu können, sollte der Parameter “-v” mit angegeben werden. Denn dann wird die Kommunikation ausführlich angezeigt. Eine vollständige Befehlszeile kann z.B. so aussehen:
smtpsend.exe -fABSENDER -tEMPFÄNGER -hSERVER -sBETREFF -iMail.txt -v -luBENUTZERNAME -lpKENNWORT
In diesem Beispiel wird eine E-Mail mit dem Text aus der Datei “Mail.txt” versendet.
Verheiratet, Vater von zwei Kindern, eines an der Hand, eines im Herzen. Schon immer Technik-Freund, seit 2001 in der IT tätig und seit über 10 Jahren begeisterter Blogger. Mit meiner Firma IT-Service Weber kümmern wir uns um alle IT-Belange von gewerblichen Kunden und unterstützen zusätzlich sowohl Partner als auch Kollegen.
Hallo Andy,
ich nutzte zeitweilig das Tool smtpsend innerhalb Deines Scripts für Drive Snapshot. Aufgefallen ist mir, dass die obigen bzw. zusätzliche Parameter eher mithilfe einer Textdatei klappen, worin die Parameter angegeben werden.
Nachdem aber serverseitige Umstellungen zu mehr Sicherheit notwendig wurden, klappt das Versenden über smtpsend.exe scheinbar nicht mehr – auch die neueste Version brachte bisher keinen Erfolg.
folgende Parameter habe ich eingetragen:
-fAbsender E-Mail
-tEmpfänger
-hSMTP-Server
-sDatensicherung
-ie-mail.txt
-lLogin
-lpPasswort
-lSMTPS
-v
Als Fehler erscheint:
Connection established with mail.gmx.ne [….]
…
…
< 250-AUTH LOGIN PLAIN
< 250-SIZE 69920427
AUTH PLAIN Axxxxxx
< 530 Must issue a STARTTLS command first
Error: Permanent message handling prolem [60]
In der Parameterbeschreibung fehlt mir scheinbar die hier notwendige Angabe. Gibt´s dafür eine Lösung?
Hallo Andy,
zum obigen Kommentar:
ich habe -lSMTPS -p465 ebenfalls getestet
kein Unterschied…
ich vermute mal, dem fehlt das Zertifikat. Diese kann man mit “-lCA TLS CA-Certificate PEM file” angeben. Das Zertifikat im PEM-Format kann man beispielsweise im Firefox über die Zertifikatsseite herunterladen.
Da ich kein GMX-Konto haben, kann ich das so gerade nicht testen, werde es aber mal mit einem anderem Provider versuchen und melde mich dann wieder bzw. erstelle dazu gerne einen Beitrag oder Update.
Hallo Andy,
danke für die schnelle Antwort, ich habe den Fehler gefunden:
dummerweise habe ich den Port hinter anstatt darunter in eine neue Zeile geschrieben.
das Ganze in eine Textdatei mit dem Aufruf:
Toolssmtpsend.exe -@Send-Parameter.txt
(als .cmd bzw. innerhalb Deines Scriptes)
also richtig ist für die Send-Parameter.txt:
-fAbsender E-Mail
-tEmpfänger
-hSMTP-Server
-sDatensicherung
-ie-mail.txt
-lLogin
-lpPasswort
-lSMTPS
-p465
-v
dann läuft´s (bei mir mit gmx)
Kleine Ursache, große Wirkung. Gut zu wissen, das die Reihenfolge entscheidend ist. Hatte es gerade eben erfolgreich sowohl mit All-inkl als auch Arcor/Vodafone schon getestet, allerdings als Einzeiler in ‘nem Skript.
Hallo Andy,
betr. die Protokoll-Übermittlung in Deinem Script für Drive Snapshot:
die Parameterangabe für
-i%LogDir%%Week%-%Weekday%.txt
führt leider nicht zum gewünschten Ergebnis, die Mail wird nur leer verschickt,
Fehlermeldung “File not found”, obwohl eine Echo Ausgabe der Stringvariablen das richtige Ergebnis zeigt. Ich helfe mir erst einmal mit
-iLogsCurrent.log
da ja dort dasselbe drinsteht.
sehr seltsam, da ansonsten die Variablen innerhalb des Scriptes ja einwandfrei laufen…
Ich habe leider auch ein Problem.
Wenn ich das wie in oben stehendem Kommentar mache (nur bei der neuen Version laut der ReaMe smtpsend.txt für den SMTP-Benutzer lu statt l, habe aber beides probiert, gleiches Resultat) kommt am Ende eine Meldung “error: connection closed by peer for no good reason (11)”
Ich habe es auch Plain getestet, ohne TLS, aber da kommt wrong user/password, das stimmt aber, klappt im Mailprogramm und im Web. Ich glaube strato hat inzwischen unverschlüsselte Mails abgeschafft.
Getestet mit sendparameter.txt und auch direkt mit den Parametern in der Shell.
(Meine Parameter:
-fxxx@xxx.xxx
-txxx@xxx.xxx
-hsmtp.strato.de
-sMailstoreError
-itest.txt
-lu…
-lp…
-p465
-lSMTPS
-v)
Habe es auch mal mit dem IPv4-Parameter getestet.
Mit dem Verbose-Parameter kriege ich auch nicht mehr Info als folgendes:
C:InstallMailstoreHomeAutomatischsmtpsendx64>SMTPSend.exe -@sendparameter.txt
SMTPSend v3.72 (Win2012x64)
(c) copyright DataEnter GmbH 1991-2022
From: xx@xxx.xxx
To: xx@xxx.xxx
Adding test.txt (4 Bytes) to message body…
MX for smtp.strato.de is smtp.strato.de [81.169.145.133]
Connection established with smtp.strato.de [81.169.145.133]
Error: Connection closed by peer for no good reason [11]
Hätte da jemand eine Idee?
Wollte das für das Mailstore Skript verwenden (https://www.andysblog.de/mailstore-home-versteckt-ausfuehren-und-archivieren-mit-rueckgabewert)
Ach, und ganz vergessen. Habe es auch mit angegebenem Zertifikat (exportiert) getestet, geht auch nicht.
Hallo Max,
offenbar hat man mit Version 3.72 im Vergleich zu beispielsweise 3.65 etwas geändert.
Beim reproduzieren hat es mit 3.65 noch funktioniert, mit 3.72 bekam ich folgende Fehlermeldung:
Error: Unable to establish a connection with mail host [14]
Ich habe daraufhin mal “-p465” weggelassen und siehe da, es funktioniert.
Dann wird scheinbar StartTLS über Port 25 genutzt.
Laut SmartSniff passiert im Fehlerfall via Netzwerk überhaupt nichts.
DataEnter habe ich mal angeschrieben, mal sehen ob da eine Antwort kommt, da die Freeware-Tools meines Wissen nach keinen Support erhalten.
wie ich seinerzeit mal getestet hatte (siehe Beitrag oben) könnte der Fehler auch an der Reihenfolge der Parameterübergabe liegen:
anstatt
-p465
-lSMTPS
mal versuchen
-lSMTPS
-p465
ich nutze erfolgreich weiterhin SMTPSend.exe
Nachfrage:
ich bekomme leider nicht raus, welche Version ich da habe.
Erstellungsdatum scheint 26.03.2015 zu sein
Es funktioniert seit Jahren bei mir und ich bin überaus zufrieden mit der Backup Lösung
Hallo Reinhard,
die Reihenfolge speilt keine Rolle, das habe ich gerade zur Sicherheit mal getestet.
Die Version steht in der Ausgabe von SMTPsend, entweder diese in eine Datei schreiben lassen oder einfach mal in der Eingabeaufforderung SMTsend ohne alles ausführen und die erste Zeile zeigt die Version:
C:smtpsend>smtpsend.exe
SMTPSend v3.72 (Win2012x64)
...
Danke Andy
SMTPSend v3.65
bissel älter noch, aber es läuft halt..!
@Reinhard
Stimmt.
@All
DataEnter hat mir bestätigt, das da etwas mit der neusten Version schief gelaufen ist, man gibt Bescheid wenn es gefixt ist.
Version 3.74 wurde veröffentlicht, damit klappt’s (laut meinem Test) wieder.
Das ging super schnell und ist echt Top von DataEnter. Vielen Dank an dieser Stelle dafür.
Hallo miteinander,
vielen Danke für die Hilfe, jetzt funktioniert es einwandfrei.
Und auch danke für das tolle Mailstore-Skript mit E-Mail-Benachrichtigung, funktioniert einwandfrei!
Ganz generell auch noch Danke für diesen tollen Blog, hier habe ich privat als auch geschäftlich schon öfters viele tolle und hilfreiche Artikel/Blog-Eionträge gefunden, immer weiter so.
Gruß
Max