我通过 nullmailer 使用远程 SMTP,它需要将 From 字段设置为特定名称,但 cron 将其设置为 root@my.sweet.server.com。
我怎么能把它改成像 me@ya.ru 这样的东西?
小智 44
现代版本的 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.
Ric*_*way 17
我认为您不能更改发件人地址,(应该有人添加 MAILFROM 选项)。
你可以做这样的事情来达到类似的结果:
* * * * * /path/to/script 2>&1 | mail -s "Output of /path/to/script" toaddress@example.com -- -r "fromaddress@example.com" -F"Full Name of sender"
Run Code Online (Sandbox Code Playgroud)
所有输出都通过管道传送到 mail 命令,因此根本不使用 MAILTO 变量。
需要设置 to 地址,但您可以使用 $MAILTO 变量。-- 将其余选项设置为 sendmail 选项,以便您可以使用 -r 和 -F 选项。
-s 是主语
-r 是回复地址
-F 是发件人的全名(使其在电子邮件客户端中看起来不错)
小智 10
/etc/mailname 包含FROM 地址的域名部分。如果 /etc/mailname 包含“somecompany.com”,那么为 root 运行的 cron 会将发件人设为 root@somecompany.com
小智 5
您可以通过环境变量或命令行从地址设置 nullmailer。命令行参数-f
,并-F
分别发送方地址和全名。
通常你可以在 crontab 中设置环境变量。
NULLMAILER_USER=webmaster
NULLMAILER_HOST=host.example.com
NULLMAILER_NAME="Mr Cron"
5 0 * * * /usr/local/bin/daily.sh
Run Code Online (Sandbox Code Playgroud)
小智 5
对我来说,在系统上更改发件人地址的最简单方法是创建一个~/.mailrc
包含以下内容的文件:
set name="My Full Name"
set from="myrealemail@example.com"
Run Code Online (Sandbox Code Playgroud)
mail
以我的用户身份运行的任何命令现在都使用这些设置。