Fehlersuche mit SMTPSend bei der E-Mail-Zustellung

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.

16 Kommentare

  • Pingback: E-Mail, G Data Port-Überwachung und Securepoint Mailrelay = #503 5.0.0 Need MAIL before RCPT ## | Andys Blog – Linux, Mac, Windows

  • 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

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert