使用 msmtp 设置 cron 电子邮件的“发件人”标头

使用 msmtp 设置 cron 电子邮件的“发件人”标头

我在 Ubuntu 10.10 上设置了 msmtp,以便 cron 可以向我发送电子邮件。在大多数情况下,它运行良好。

但是,发送到我的 Gmail 帐户的电子邮件显示来自(未知发件人),标题显示:

From: root (Cron Daemon)

如何将“发件人”标头设置为有效的电子邮件地址?

我刚刚邮件传输协议符号链接为/usr/sbin/sendmail

我发现的一个可能的解决方案是:http://tech.bluesmoon.info/2010/01/pretty-print-cron-emails.html

不过,我很好奇是否有更简单的方法。

答案1

我找到了两个解决方案:

  • 使用 msmtp 1.8.8 或更高版本(出现在 Ubuntu 20.10 中),使用set_from_header on配置设置,它可以覆盖现有的From:,而不像以前add_missing_from_header那样只能在缺失时添加它
  • 对于早期版本(例如 Ubuntu 20.04),
    • 删除msmtp-mta现在没用的包,
    • 创建一个两行脚本重写标题,例如/usr/local/bin/msmtp-pseudo-mta.bash
#!/bin/bash
# Workaround until mtmsp >= 1.8.8 in Ubuntu 20.10.
sed -e "s/From: root (Cron Daemon)/From: WHATEVER YOU LIKE/" | msmtp $BASH_ARGV
    • 使其可执行,例如chmod 755 /usr/local/bin/msmtp-pseudo-mta.bash
    • 将其符号链接为 sendmail:
sudo ln -s /usr/local/bin/msmtp-pseudo-mta.bash /usr/sbin/sendmail

想法来自:https://serverfault.com/a/441414/17379

答案2

没问题。只需按照手册中所述进行配置即可: http://msmtp.sourceforge.net/doc/msmtp.html#Envelope_002dfrom-address

maildomain example.com

应将 example.com 添加到所有未设置域名的邮件中。

答案3

您可以使用-aswitch 来指定附加标头。附加标头可以是From,因此这正是您所需要的。

例子:

/some_command.sh | mail -s "Email subject" -a "From:Sender Name <[email protected]>" [email protected]

相关内容