Ich verwende das SSMT-Paket, um E-Mails über G-Mail zu senden. Damit funktioniert alles einwandfrei. Das einzig Merkwürdige ist, dass das Feld „An“ komisch ist, wenn ich E-Mails über die Befehlszeile sende.
ssmtp [email protected] < message.txt
Im Feld „An“ steht grundsätzlich nur „unbekannte Empfänger“
Ich habe gelesen, dass man Kopfzeilen mit einem „An:“-Feld festlegen kann, aber das scheint zu kompliziert, wenn ich den Befehl auf anderen Systemen verwende mail
, ich glaube, das passiert automatisch.
Gibt es eine einfachere Möglichkeit, E-Mails über die Befehlszeile zu senden, ssmtp
ohne die obige Syntax ändern oder zusätzliche Parameter angeben zu müssen? (Möglicherweise eine Konfigurationsdatei, um die „An“-Adresse auf die angegebene Adresse festzulegen.)
Antwort1
Diese Situation entsteht durch ein Missverständnis dessen, was ssmtp
geschieht. Es gibt einen sehr wichtigen Unterschied zwischen der NachrichtUmschlag(die Mailserver zum Weiterleiten von E-Mails verwenden) und die NachrichtKörper(die in Ihrem E-Mail-Client angezeigt wird). Beide können To
und haben From
, und sie können sich voneinander unterscheiden. Dies istOkay!
ssmtp
erstellt lediglich den Umschlag und erleichtert die Übermittlung der Nachricht an den MTA. Es erwartet, dass der von Ihnen übergebene Text vollständig ausgefüllt ist undalle Body-Header enthalten. Es werden keine für Sie hinzugefügt*, (obwohl es Nachrichtenbearbeitungsheader einfügt, z. B. Received-by
, usw.). Sie haben sicher auch bemerkt, dass Subject:
bei diesen Nachrichten auch kein vorhanden ist.
Die Antwort auf Ihre Frage ist also, dass das To:
Feld in enthalten sein muss message.txt
.
Damit die Felder To:
und Subject:
angezeigt werden, müssen Sie sie message.txt
wie folgt formatieren:
To: [email protected]
Subject: Message for you
Message text starts here.
blah blah blah.
*Das ist nicht ganz richtig. Da ein From:
Header der einzige erforderliche Header ist, wird einer aus dem Umschlag abgeleitet und eingefügt, wenn er fehlt.