在 Ubuntu 上配置 Postfix 以使用 Gmail SMTP

Posted

技术标签:

【中文标题】在 Ubuntu 上配置 Postfix 以使用 Gmail SMTP【英文标题】:Configure Postfix to Use Gmail SMTP on Ubuntu 【发布时间】:2018-07-21 21:13:24 【问题描述】:

我正在使用this online guide here 来启用 从 linux (ubuntu) 终端发送的简单邮件 通过一些gmail帐户使用后缀。 我已经完成了那里列出的步骤:

sudo apt-get install postfix mailutils libsasl2-2 ca-certificates libsasl2-modules
vim /etc/postfix/main.cf

并添加这些行:

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

然后编辑这个文件:

vim /etc/postfix/sasl_passwd

要添加指南中所说的行:

[smtp.gmail.com]:587    USERNAME@gmail.com:PASSWORD

(当然是我自己的邮箱和密码)然后最后:

sudo chmod 400 /etc/postfix/sasl_passwd
sudo postmap /etc/postfix/sasl_passwd

然后:

sudo /etc/init.d/postfix reload

当我尝试发送简单的邮件时,没有任何反应:

echo "Test mail from postfix" | mail -s "Test Postfix" you@example.com

(当然这里也有其他有效的电子邮件)

我做错了什么?谢谢!

【问题讨论】:

【参考方案1】:

我认为您需要验证证书以避免出错。

尝试:

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

如果您在使用上述命令时遇到问题,请尝试将证书重命名为: thawte_Primary_Root_CA.pem 在上面的命令中。

现在,重新加载服务器

sudo /etc/init.d/postfix reload

【讨论】:

是的,它有效!我用过:thawte_Primary_Root_CA.pem ...非常感谢!【参考方案2】:

问题可能与应用程序密码有关。例如,我不能在使用当前密码的旧客户端上使用我的 gmail。您可能想要创建“Application Password”。

或者启用less secure apps 会有所帮助。 (很可能这是解决方案)

用于管理应用密码: https://myaccount.google.com/apppasswords

额外信息:Use Gmail as your SMTP Server – even when using 2-factor authentication (2-step verification)

【讨论】:

谢谢,之前启用了不太安全的应用程序,所以不是这样。看起来两步验证可能会使整个事情变得更加复杂,所以我宁愿避免这种情况——奇怪的是,我曾经在一台旧电脑上做过完全相同的事情......

以上是关于在 Ubuntu 上配置 Postfix 以使用 Gmail SMTP的主要内容,如果未能解决你的问题,请参考以下文章

如何配置 Flask Mail 以使用 Postfix

ubuntu使用postfix和AWS-SES发送邮件

Ubuntu16.04搭建Postfix作为SMTP服务器

9.配置postfix空客户端

Linux下Postfix的配置和使用

配置postfix和dovecot启用SSL以加密连接