答案1
我认为您不能更改发件人地址(有人应该添加 MAILFROM 选项)。
不过,您可以做类似的事来获得类似的结果:
* * * * * /path/to/script 2>&1 | mail -s "Output of /path/to/script" [email protected] -- -r "[email protected]" -F"Full Name of sender"
所有输出都通过管道传输到邮件命令,因此 MAILTO 变量根本不使用。
需要设置收件人地址,但您可以使用 $MAILTO 变量。-- 将其余选项设置为 sendmail 选项,以便您可以使用 -r 和 -F 选项。
-s 是主题
-r 是回复地址
-F 是发件人的全名(使其在电子邮件客户端中看起来美观)
答案2
现代版本的 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.
答案3
/etc/mailname 包含发件人地址的域名部分。如果 /etc/mailname 包含“somecompany.com”,则 root 运行的 cron 将使发件人成为[电子邮件保护]
答案4
您可以通过环境变量或命令行设置 nullmailer 发件人地址。命令行参数分别为-f
和 ,-F
分别表示发件人地址和全名。
通常您可以在crontab中设置环境变量。
NULLMAILER_USER=webmaster
NULLMAILER_HOST=host.example.com
NULLMAILER_NAME="Mr Cron"
5 0 * * * /usr/local/bin/daily.sh