我最近使用 14.04.1 LTS 构建了一个服务器,我希望它能以一种非常快速和简单的方式通知我,例如,在安装升级后是否需要重新启动系统。我认为电子邮件是最好的选择。
我已经安装、配置并测试了 ssmtp,以使用我的常用电子邮件服务之一。
此外,我已经配置了无人值守升级,至少在最初阶段,它会在任何升级后向我发送电子邮件。
我可以让无人值守升级电子邮件来自特定地址吗?我知道我可以直接使用邮件或 ssmtp 来做到这一点,但如果我不指定“发件人”地址,那么它将默认为我的邮件服务的默认帐户,我希望它清楚地来自这台特定的机器。我可以在哪里为无人值守升级使用的邮件命令指定“发件人”地址?
答案1
在发现/usr/bin/unattended-upgrade
:
from_email = apt_pkg.config.find("Unattended-Upgrade::Sender", "root")
因此,默认情况下它将使用“root”作为发件人,这(至少在我的情况下)可能导致电子邮件因字段缺失或错误而被拒绝。
您可以在 中更改发件人/etc/apt/apt.conf.d/50unattended-upgrades
,例如:
Unattended-Upgrade::Sender "Unattended-upgrades Hostname <[email protected]>";
答案2
只需在 mail.rc 文件中指定一个别名:
alias root root<[email protected]>
答案3
@Fabby - 谢谢你的建议,我找不到 mail.rc 文件,但你给我指明了正确的方向。(我试图投票支持你的答案,但我显然太菜鸟了!)
只是为了检查,我做了一个sendmail -V
确认我正在使用 sSMTP。
重新阅读 sSMTP 上的文档后,我按照建议设置了一个别名,但在 或/etc/aliases
中/etc/ssmtp/revaliases
。
/etc/aliases
已经包含 root 的条目 - 更改它似乎对已发送的电子邮件标题或内容没有明显影响。(我在想它是针对收到的邮件吗……?)
但是,添加:
root:[email protected]:MyMailHub.com
导致/etc/ssmtp/revaliases
邮件生成一条消息,内容如下:
From: root <[email protected]>
这虽然不是我想要的,但已经足够好了。
讽刺的是,当我登录服务器尝试此操作时,它通知我需要重新启动系统,但我没有电子邮件提醒我,所以我仍然没有正确设置......回到原点!
答案4
编辑 50unattended-upgrades。
sudo nano /etc/apt/apt.conf.d/50unattended-upgrades
添加以下行:
// Specify the from email address.
Unattended-Upgrade::Sender "EXAMPLE-Unattended-Upgrades";
更改“EXAMPLE”甚至删除“-Unattended-Upgrades”,电子邮件将来自 EXAMPLE 名称。