安装软件包

安装软件包

我有一个新的 Ubuntu 18.04 系统,并希望mdadmsmartd等通过我的 gmail 帐户发送警告电子邮件。我已按照如何配置 Postfix 以通过我的 Gmail 帐户发送所有电子邮件?如何在 Ubuntu 16.04 / 17.10 上配置 Postfix 以使用 Gmail SMTP,但我一直遇到身份验证失败的问题。我的 Gmail 帐户设置了双因素身份验证 (2FA)。这可能是一个因素吗?

答案1

正如乔治所说,2FA 确实是一个因素。我在下面写下了解决我的问题的完整程序:

安装软件包

sudo apt-get install postfix mailutils libsasl2-2 ca-certificates libsasl2-modules
  • 选择Internet host
  • 输入主机名(不必为互联网所知),例如 trillian.at.home

从谷歌获取应用密码

Google 允许您设置拥有自己密码的“应用程序”。此技术也适用于邮件中继。

  • 访问您的应用密码页面 (https://security.google.com/settings/security/apppasswords)。
  • 使用您的双重身份验证方法登录。
  • 选择应用程序:Mail和设备:Other
  • 给你的“应用程序”起一个名字,例如mail relay from <hostname>
  • Generate
  • 写下“应用程序”密码(16 个字符,无空格)。

存储应用密码

打开/创建密码文件:

sudo nano /etc/postfix/sasl/relay_passwd

将以下文本放入文件中:

[smtp.gmail.com]:587 [email protected]:APP-PASSWORD

其中 USERNAME 是您的 gmail 用户名,APP-PASSWORD 是 16 位应用程序密码。

创建哈希文件:

sudo postmap /etc/postfix/sasl/relay_passwd

确保只有 root 可以读取/写入密码文件:

sudo chown root:root /etc/postfix/sasl/relay_passwd /etc/postfix/sasl/relay_passwd.db
sudo chmod 0600 /etc/postfix/sasl/relay_passwd /etc/postfix/sasl/relay_passwd.db

创建证书文件

cat /etc/ssl/certs/thawte_Primary_Root_CA.pem | sudo tee -a /etc/postfix/cacert.pem

配置 postfix

sudo nano /etc/postfix/main.cf

删除该relayhost行并确保文件中包含以下行。

relayhost = [smtp.gmail.com]:587
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl/relay_passwd
smtp_sasl_security_options = noanonymous
smtp_tls_CAfile = /etc/postfix/cacert.pem
smtp_use_tls = yes

测试

跑步

echo "Test email" | mail -s "Test" [email protected]

希望您的邮件已出现在 gmail 中。否则,请使用mailqtail -f /var/log/mail.log进行调试。

设置 mdadm 和 smartd

如果测试电子邮件已到达,您现在可以设置mdadmsmartd。对于mdadm,我使用以下行

MAILADDR [email protected]

/etc/mdadm/mdadm.conf我的 Gmail 收件箱中启用邮件过滤。同样,我使用文本

-m [email protected]

在 我 的DEVICESCAN行 中/etc/smartd.conf

答案2

请关注指导使其正常工作,因为 2FA 会影响这些应用程序,但这里是摘要:

  1. 访问您的应用密码页面。您可能会被要求登录您的 Google 帐户。
  2. 在底部,单击“选择应用程序”,然后选择您正在使用的应用程序。
  3. 单击选择设备并选择您正在使用的设备。
  4. 选择生成。
  5. 按照说明在您的设备上输入应用程序密码(黄色栏中的 16 个字符的代码)。
  6. 选择完成。

完成后,您将不会再看到该应用密码。但是,您将看到已为其创建应用密码的应用和设备列表。

阅读更多:

https://duo.com/blog/bypassing-googles-two-factor-authentication

答案3

我可以按照 Ubuntu 22.04 上的上述说明使电子邮件正常工作,但有以下注意事项:

  • 我无法创建证书文件(/etc/ssl/certs/thawte_Primary_Root_CA.pem 不存在)并且

  • 我没有将“smtp_tls_CAfile = /etc/postfix/cacert.pem”添加到“/e/etc/postfix/main.cftc/postfix/main.cf”

相关内容