sendmailを使用してデータを送信し、onelinerで実行したい。
echo "mail content" | sendmail emailataddres.com
件名なしで送信します。
件名はメールコンテンツの前にある必要があるため、次の行に沿って何かを探しています。
echo "mail content" | prepend "Subject: All that matters" | sendmail emailataddres.com
sedとawkは、使用して覚えるのが本当に面倒です。
編集:明確にするために:echo "Mail content"は単なる例です。任意のソースからの標準出力ストリームに何かを追加できる必要があります。例:ifconfig、zcatなど。
これを答えとして追加すると、私はそれを受け入れるかもしれません... :)
—
AndreasT
ああ、いや、申し訳ありません。私の編集を考慮してください。
—
-AndreasT
どうすれば
—
-allquixotic
prepend
いいですか?何かを追加する方法を知るためには、上流コマンド(例えばecho
)がEOFを送信するまで待たなければなりません。そのため、ストリームの前にデータを挿入してから、stdoutに渡してsendmailにパイプされます。短いRubyまたはPythonスクリプトのタスクのように聞こえます。
少し異なるアプローチは
—
Wim Lewis
mail
、sendmail
直接ではなくコマンド(bsdmailと呼ばれることもあります)を使用することです。オプションをmail
取り-s subject
ます。例: ifconfig -a | mail -s 'Current ifconfig output' me@someaddr.com
echo -e "Subject: All that matters\nmail content"
?以上のプラットフォームに依存しません:printf 'Subject: %s\n%s\n' "All that matters" "mail content"
。また、2つの文字列引数を取り、さらに単純な1行を作成する小さなスクリプトを作成することもできます。