强制电子邮件地址cron发送FROM

我在AWS上运行Ubuntu,并使用他们的SES(简单电子邮件服务)和sSmtp来发送日志,因为这是服务器上唯一需要的电子邮件。

我有ssmtp发送和一切正常,除了从cron作业发送的电子邮件由于发件人地址被拒绝。 SES要求validationFrom:和To:电子邮件地址,但从cron发送的电子邮件只是root ,而不是[email protected]

有没有办法设置cron用作From:地址的完整电子邮件地址,还是有办法让ssmtp重写From:当它只是一个没有域的名字?

我的ssmtp.conf看起来像这样:

 [email protected] mailhub=email-smtp.us-east-1.amazonaws.com:465 rewriteDomain=mydomain.com hostname=mydomain.com #UseSTARTTLS=YES UseTLS=YES AuthUser=XXXX AuthPass=XXXX AuthMethod=LOGIN FromLineOverride=YES 

谢谢。

cron使用sendmail命令发送邮件。 通常情况下,邮件服务器正在追加域名,所以在你的情况下,ssmtp需要这样做。

我以前从未使用过sSMTP,但发送者重写看起来很奇怪。 我查看了源代码,并且有一个文件/etc/ssmtp/revaliases

这个例子列出了这个:

 # sSMTP aliases # # Format: local_account:outgoing_address:mailhub # # Example: root:[email protected]:mailhub.your.domain[:port] # where [:port] is an optional port number that defaults to 25. 

在你的情况大概:

 root:[email protected]:email-smtp.us-east-1.amazonaws.com:465 

由于似乎无法更改cron从Ubuntu发送的From:地址,所以我find了一个解决方法。 这可能不是最好的方法,但它似乎工作。

安装ssmtp时,会创build从/usr/sbin/sendmail/usr/sbin/ssmtp 。 我所做的是删除链接,并创build一个包含以下内容的sendmail文件:

 sed "s/From: root /From: [email protected] /" | /usr/sbin/ssmtp $* 

现在,任何从root发送的邮件都会被重写为[email protected]