我使用远程SMTP通过nullmailer,它需要设置从字段到具体的名称,但cron设置为[email protected]。
我怎么能改变它像[email protected]?
我不认为你可以改变FROM地址,(有人应该添加一个MAILFROM选项)。
你可以做这样的事情,虽然达到类似的结果:
* * * * * /path/to/script 2>&1 | mail -s "Output of /path/to/script" [email protected] -- -r "[email protected]" -F"Full Name of sender"
所有的输出都被传送到邮件命令,所以MAILTOvariables根本不被使用。
要解决的地址将需要设置,但您可能能够使用$ MAILTOvariables。 – 将其余选项设置为sendmail选项,以便使用-r和-F选项。
是主题
-r是回复地址
-F是发件人的全名(使其在电子邮件客户端中看起来不错)
现代版本的cron在crontab格式中接受“MAILFROM = …”。 我build议你尝试“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.
您可以通过环境variables或命令行从地址设置nullmailer。 命令行参数分别是发件人地址和全名的-f
和-F
。
通常你可以在crontab中设置环境variables。
NULLMAILER_USER=webmaster NULLMAILER_HOST=host.example.com NULLMAILER_NAME="Mr Cron" 5 0 * * * /usr/local/bin/daily.sh
/ etc / mailname包含FROM地址的域名部分。 如果/ etc / mailname包含“somecompany.com”,那么运行root的cron将使用发件人为[email protected]
对我而言,在系统上更改from地址的最简单方法是创build一个~/.mailrc
文件,其内容如下所示:
set name="My Full Name" set from="[email protected]"
以我的用户身份运行的任何mail
命令现在都使用这些设置。
看到这个问题,如果使用Exim:
exim:将“From”标题改写为“FROM”
它应该设置“发件人”地址到cronjob所有者的地址。 你可以用你自定义的地址replace$header_from:
如果你想将其硬编码到其他地方。
另一个简单的替代方法是使用mutt,
在用以下命令运行cron的用户的主目录中创build一个.muttrc
set =“user @ host”set realname =“Joe User”set use_from = yes
用mutt命令运行一个脚本,或者用cron命令来发送邮件。
在mutt发送和发送电子邮件之前,它将从.muttrc文件中设置From头。
它是从user @ domain邮寄的 – 用户是cron正在运行的login名 – 所以你必须创build一个用户'我' – 并以该用户的身份运行cron作业。
然后改变域,有不同的可能性 – 这可能是你需要改变hosts文件条目(或者在我的机器上,当我configuration这个 – 一个Ubuntu的盒子) – 改变/ etc / mailname – 成为你想要它来自的域名。