使用 msmtp 和 GMail 账号部署服务器 SMTP 发信(2024年)

实验室新添加的服务器需要一个基本的邮件通知功能,也就是在某些事件发生时能够向外发送电子邮件进行通知。众所周知,配置电子邮件的基础设施通常会很麻烦。因此,我在寻找解决方案时有以下三点考虑:

  • 服务器程序发送电子邮件的接口应该通用。因此,我优先考虑使用提供了兼容/usr/sbin/sendmail命令的软件。
  • 避免额外注册邮箱账号的麻烦。因此我选择重复利用我已有的 GMail 账号。
  • 考虑 GMail 的特有限制。由于使用 Google 主密码进行 SMTP 发信身份认证的操作已经被 GMail 认为不安全而禁用了,所以这次必须变相使用用户名和密码完成 SMTP 配置。Google 提供了一个名为 App passwords 的特别功能,能够根据需要创建一个起替代作用的纯文本密码。

我最后选择的解决方案是 msmtp 配合 msmtp-mta 以及 GMail SMTP + App Passwords 组合。整个过程基本是遵循Gmail with an App Password这篇英文博客文章来部署的。

本文的配置在2024年10月有效,但无法保证永远生效。请在进行配置之前先行验证方法的有效性。
继续阅读