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

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

我通过 nullmailer 使用远程 SMTP,它需要将发件人字段设置为特定名称,但 cron 将其设置为[电子邮件保护]

我怎样才能将它改为类似[电子邮件保护]

答案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

相关内容