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

Jas*_*ete 10 email cron

我在 Ubuntu 10.10 上设置了 msmtp,以便 cron 可以向我发送电子邮件。在大多数情况下,这就像冠军一样。

但是,进入我的 gmail 帐户的电子邮件显示为来自(unknown sender),并且标题显示:

From: root (Cron Daemon)
Run Code Online (Sandbox Code Playgroud)

如何将 From 标头设置为有效的电子邮件地址?

我刚刚将msmtp 符号链接为/usr/sbin/sendmail

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

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

FGM*_*FGM 11

我找到了两个解决方案:

  • 对于 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
Run Code Online (Sandbox Code Playgroud)
    • 使其可执行,例如chmod 755 /usr/local/bin/msmtp-pseudo-mta.bash
    • 将其符号链接为 sendmail:
sudo ln -s /usr/local/bin/msmtp-pseudo-mta.bash /usr/sbin/sendmail
Run Code Online (Sandbox Code Playgroud)

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


mai*_*ilq 1

没问题。只需像手册中提到的那样配置它: http://msmtp.sourceforge.net/doc/msmtp.html#Envelope_002dfrom-address

maildomain example.com
Run Code Online (Sandbox Code Playgroud)

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