解決策 1:
cron の最新バージョンは、crontab 形式の "MAILFROM=..." を受け入れます。 「man 5 crontab」を試すことをお勧めします。 MAILFROM と記載されている場合は、お使いのバージョンでサポートされている必要があります。検索するフレーズは、MAILTO について説明している段落の終わりの方にあり、次のようなものである必要があります:
<ブロック引用>
If MAILFROM is defined (and non-empty), it will be used as the envelope sender address, otherwise, ''root'' will be used.
解決策 2:
FROM アドレスを変更することはできないと思います (誰かが MAILFROM オプションを追加する必要があります)。
ただし、同様の結果を得るために、次のようなことを行うことができます:
* * * * * /path/to/script 2>&1 | mail -s "Output of /path/to/script" [email protected] -- -r "[email protected]" -F"Full Name of sender"
すべての出力は mail コマンドにパイプされるため、MAILTO 変数はまったく使用されません。
to アドレスを設定する必要がありますが、$MAILTO 変数を使用できる場合があります。 -- は残りのオプションを sendmail オプションに設定するため、-r オプションと -F オプションを使用できます。
-s は件名です
-r は返信アドレスです
-F は送信者の氏名です (メール クライアントで見栄えがよくなります)
解決策 3:
/etc/mailname には、FROM アドレスのドメイン名部分が含まれています。/etc/mailname に「somecompany.com」が含まれている場合、root に対して実行されている cron は送信者を [email protected] とします。
解決策 4:
環境変数またはコマンドラインを使用して、アドレスから nullmailer を設定できます。コマンドライン引数は -f
です そして -F
それぞれ送信者のアドレスとフルネーム。
通常、crontab で環境変数を設定できます。
NULLMAILER_USER=webmaster
NULLMAILER_HOST=host.example.com
NULLMAILER_NAME="Mr Cron"
5 0 * * * /usr/local/bin/daily.sh
解決策 5:
私にとって、システムの送信元アドレスを変更する最も簡単な方法は、 ~/.mailrc
を作成することです 次のような内容のファイル:
set name="My Full Name"
set from="[email protected]"
mail
のいずれか ユーザーとして実行されるコマンドは、これらの設定を使用するようになりました。