Chcę używać sendmaila, aby wysyłać mi rzeczy i chcę to zrobić w oneliner.
echo "mail content" | sendmail emailataddres.com
Wysyła to bez tematu.
Temat musi znajdować się przed treścią poczty, więc szukam czegoś w stylu:
echo "mail content" | prepend "Subject: All that matters" | sendmail emailataddres.com
sed i awk są zwykle niewygodne w użyciu i zapamiętywaniu.
EDYCJA : Aby wyjaśnić: echo „Treść wiadomości” to tylko przykład ilustrujący. Muszę być w stanie przygotować rzeczy do standardowych strumieni z dowolnego źródła. np .: ifconfig, zcat itp.
prepend
zrobić Aby wiedzieć, jak coś przygotować, musisz poczekać, aż polecenie echo
wysyłające (np. ) Wyśle EOF, abyś mógł wstawić swoje dane przed strumieniem, zanim przekaże je na standardowe wyjście, aby otrzymać potok do sendmaila. Brzmi jak zadanie dla krótkiego skryptu Ruby lub Python.
mail
polecenia (czasami nazywanego bsdmail) zamiast sendmail
bezpośredniego. mail
ma opcjonalną -s subject
opcję, np .: ifconfig -a | mail -s 'Current ifconfig output' me@someaddr.com
echo -e "Subject: All that matters\nmail content"
? Lub więcej platform agnostyk:printf 'Subject: %s\n%s\n' "All that matters" "mail content"
. Możesz także napisać mały skrypt, który po prostu bierze dwa argumenty łańcuchowe, aby uczynić jeszcze prostszą jednowierszową.