Ich möchte sendmail verwenden, um mir Inhalte zu senden, und möchte dies in einem Oneliner tun.
echo "mail content" | sendmail emailataddres.com
Sendet es ohne Betreff.
Die Betreffzeile muss vor dem E-Mail-Inhalt stehen, daher suche ich nach etwas in der Art von:
echo "mail content" | prepend "Subject: All that matters" | sendmail emailataddres.com
sed und awk neigen dazu, sehr umständlich zu sein und sich zu erinnern.
EDIT : Nur zur Verdeutlichung: Echo "Mail-Inhalt" ist nur ein anschauliches Beispiel. Ich muss in der Lage sein, den Standard-Streams von jeder Quelle etwas voran zu stellen. zB: ifconfig, zcat, etc ..
prepend
ich tun? Um zu wissen, wie Sie etwas voranstellen müssen, müssen Sie warten, bis der Upstream-Befehl (z. B. echo
) die EOF sendet, damit Sie Ihre Daten davor in den Stream einfügen können, bevor Sie sie an stdout übergeben, um an sendmail weitergeleitet zu werden. Klingt nach einer Aufgabe für ein kurzes Ruby- oder Python-Skript.
mail
Befehl (manchmal bsdmail genannt) anstelle von sendmail
direkt zu verwenden. mail
kann optional gewählt werden -s subject
, z. B .: ifconfig -a | mail -s 'Current ifconfig output' me@someaddr.com
echo -e "Subject: All that matters\nmail content"
? Oder mehr plattformunabhängig:printf 'Subject: %s\n%s\n' "All that matters" "mail content"
. Sie können auch ein kleines Skript schreiben, das nur die beiden Zeichenfolgenargumente verwendet, um einen noch einfacheren Einzeiler zu erstellen.