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


Answers:


13

我认为您不能更改FROM地址,(有人应该添加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"

所有输出都通过管道传递到mail命令,因此根本不使用MAILTO变量。

需要设置收件人地址,但您可以使用$ MAILTO变量。-将其余选项设置为sendmail选项,因此您可以使用-r和-F选项。

-s是主题

-r是回复地址

-F是发件人的全名(使它在电子邮件客户端中看起来不错)


serverfault.com/a/437319/30697应该是已接受的答案。
lkraav

34

现代版本的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.


6
“现代”在哪里意味着什么?根据我在变更日志或文档中所看到的,Debian stable(3.0pl1-124)中最新版本的cron不支持此功能。
Flimzy 2012年

谢谢,这在Archlinux上对我有用。cron有许多不同的口味。Debian的ISC始于2004年,因此扩展了“现代”的定义,但没有有关它在哪个系统上使用的信息-很难提供细节!
RuiDC 2013年

1
不幸的是,Ubuntu的cron(至少从14.04 LTS开始)没有提及MAILFROMin man 5 crontab
Arto Bendiken

4
您可以安装在Debian / Ubuntu上cronie进行替换cron。Ta-daa:MAILFROM存在:
AndreasKlöckner15年

1
cronie在Ubuntu 16.04上不存在
Alex k


5

您可以通过环境变量或命令行从地址设置nullmailer。命令行参数分别是-f-F,分别用于发送者地址和全名。

通常,您可以在crontab中设置环境变量。

NULLMAILER_USER=webmaster
NULLMAILER_HOST=host.example.com
NULLMAILER_NAME="Mr Cron"

5 0 * * * /usr/local/bin/daily.sh

他问的是发件人:不是发件人:
金威

嗯,这由于未知原因不起作用。
亚历山大·阿捷缅科

3

对我来说,更改系统上发件人地址的最简单方法是创建一个~/.mailrc具有以下内容的文件:

set name="My Full Name"
set from="myrealemail@example.com"

mail现在,以我的用户身份运行的任何命令都将使用这些设置。



0

另一个简单的选择是使用杂色,

  • 使用以下命令在运行cron的用户的主目录中创建一个.muttrc

    设置realname =“ Joe用户”设置为=“ user @ host”设置use_from = yes

  • 运行带有mutt命令的脚本,或通过管道将cron命令传递给mutt以发送电子邮件。

在mutt发送和发送电子邮件之前,它将设置.muttrc文件中的From标头。


0

我不得不更改/etc/mail/sendmail.cf/etc/mail/sendmail.mc,因为/etc/mailname没有使用。但是,它仅更改源域,而不更改用户。


0

您可以使用以下几项更改发件人域:

Edit this file: /etc/mailname and change to:
    example.org
sudo postconf -e 'myhostname= example.org'
sudo systemctl restart postfix

-2

它是通过user @ domain邮寄的-用户是cron在其下运行的登录名-因此,您必须创建一个用户“ me”-并以该用户身份运行cron作业。

然后要更改域,存在不同的可能性-可能是您需要更改hosts文件条目(或者在我的机器上,当我配置此文件时-一个Ubuntu框)-更改/ etc / mailname -成为您想要的域名。


1
实际上并非如此-至少在许多情况下并非如此。例如,在我的系统上,仅从“用户”发送,而不是从“ user @ domain”发送。MTA的责任是添加本地域名。在某些情况下(例如我的),这很重要,因为我的MTA(由于太复杂且难以理解的原因)没有添加域名。
Flimzy 2012年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.