Warum funktioniert das Echo durch Pipe, aber nicht mit msmtp?

820
user19496

Das funktioniert:

Echo "Yada Yada" | msmtp mein@mail.com

aber nicht das:

Katze yadayada.txt | msmtp mein@mail.com

die liefert die E-Mail mit leeren Inhalten.

Warum funktioniert das Echo durch Pipe, aber nicht mit msmtp?

0
Ist Ihr `yadayada.txt`-Format lustig oder haben Sie seltsame Berechtigungen? Es funktioniert gut für mich, wenn ich es auspacke. nerdwaller vor 10 Jahren 0
yadayada.txt hat u: rw g: rw o: r und ist eine mehrzeilige Datei. Beispielinhalt: === rsync-start === 2013-08-07 20:58:01 === rsync stop === 2013-08-07 21:00:50 user19496 vor 10 Jahren 0
das hat funktioniert: tr -d ':' <yadayada.txt | msmtp mein@mail.com user19496 vor 10 Jahren 0
':' war der schuldige. thx @nerdwaller du hast mich in die richtige richtung gerichtet. user19496 vor 10 Jahren 0
Das macht Sinn, da es in msmtp so etwas wie "Betreff: Meine Betreffzeile" erlaubt. Guter Fang! nerdwaller vor 10 Jahren 0

1 Antwort auf die Frage

0
user19496

msmtp scheint sich auf eine gutgeformte E-Mail-Nachricht in der gerade gelesenen Datei zu verlassen.

Ex.

Subject: My subject line  My body text 

Da ich mich nicht für den Betreff etc. interessiere
(ich versende eine E-Mail, wenn eine Logdatei mit incron geändert wird)

tr -d ':' <yadayada.txt | msmtp mein@mail.com

ist eine Q & D-Methode, um den Inhalt der Protokolldatei mit msmtp zu senden.