如何更改Cron电子邮件的“From:”字段?

我使用远程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 – 成为你想要它来自的域名。