mailとsendmailコマンドでFrom指定

メールが届かない

サーバ監視のスクリプトから問題発生時にメールが配信されるのだが、自分の携帯(iPhone)に届いていなかった。。
↓エラーを見ると、FromアドレスのドメインがDNSで引けないのでSoftBankのサーバから拒否されていた。

failure: Connected_to_000.000.000.000_but_sender_was_rejected./Remote_host_said:_553_mail.aaa.jp_does_not_exist/

Fromを指定してやる

Linuxの場合

「-- -f aaa@aaa.jp」を付けてやる。

echo hoge | mail -s 'title' xxx@xxx.jp -- -f aaa@aaa.jp
FreeBSDの場合

FreeBSDのmailコマンドはfromを指定できなかったので、sendmailコマンドを使用。

printf "Subject:title\nTo:xxx@xxx.jp\nFrom:aaa@aaa.jp\n\nmessage" | sendmail -t xxx@xxx.jp -f aaa@aaa.jp

FreeBSDのechoは\nを改行としてくれないので、printfを使用