Gmail SMTP的SASL身份验证

6

我正在使用Postfix通过应用程序密码(激活了两步验证)发送电子邮件。

每次我使用sendmail命令测试发送邮件时,都会出现以下错误:

Action: delayed
Status: 4.7.14
Diagnostic-Code: X-Postfix; delivery temporarily suspended: SASL authentication
failed; server smtp.gmail.com said: 534-5.7.14
<https://accounts.google.com/signin/continue?...> Please log in via your web browser and?534-5.7.14 then try again.?534-5.7.14

这是我的邮件后缀配置:
main.cf
myorigin = /etc/mailname
mydestination = mydomain.com, localhost.fr, localhost
relayhost = [smtp.gmail.com]:587

smtp_sasl_auth_enable = yes
smtp_sasl_security_options = noanonymous
smtp_sasl_password_maps = hash:/etc/postfix/sasl/sasl_passwd
smtp_tls_security_level = encrypt
smtp_tls_CAfile = /etc/ssl/certs/ca-certificates.crt

/etc/postfix/sasl/sasl_passwd:

[smtp.gmail.com]:587 admin@mydomain.com:application_password

以下是我如何使用sendmail:

sendmail -v ...
From: admin@mydomain.com
Subject: Test
This is a test mail
.

有什么想法吗?谢谢!

1
我在使用smtp.gmail.com的posix配置中也遇到了身份验证问题。May 7 15:59:32 apurb-ThinkPad-E470 postfix/smtp[10589]: 4CC0728214FB: to=myusername@gmail.com, relay=smtp.gmail.com[64.233.186.109]:587, delay=896, delays=894/0.07/1.7/0, dsn=4.7.8, status=deferred (SASL authentication failed; server smtp.gmail.com[64.233.186.109] said: 535-5.7.8 用户名和密码不被接受。请访问https://support.google.com/mail/?p=BadCredentials t7sm9274499qte.74 - gsmtp)。有什么解决方法吗? - intechops6
1
你有没有找到解决方法?我遇到了相同的错误,我正在使用我的应用程序专用密码,而且我在主帐户上启用了双重认证。 - jcaruso
3个回答

6

针对遇到同样问题的任何人:

  1. 使用应用程序专用密码
  2. 在您的账户上启用了2FA
  3. 在日志中看到“delivery temporarily suspended: SASL authentication failed; server smtp.gmail.com[173.194.68.109] said: 534-5.7.9 Please log in with your web browser and then try again”

您可能需要访问 https://accounts.google.com/DisplayUnlockCaptcha来“绕过”验证码,这将使账户可以访问并使一切正常。


3

允许较不安全的应用程序: 如果您没有使用两步验证,您可能需要允许较不安全的应用程序访问您的帐户。

输入图像描述


如果您正在使用双因素认证,该怎么办? - qodeninja
1
@qodeninja,这种情况下您需要创建一个应用程序密码,以便与Postfix一起使用。 - dseifert
1
此设置在谷歌中已不再可用。现在需要启用双重身份验证,然后创建一个特定的应用程序密码,请参见@jcaruso的答案或https://support.google.com/accounts/answer/185833。 - Redoman

1

在我的情况下,我是通过SMTP中继从Synology NAS邮件服务器连接的。解决方案是:

  1. 访问您的Google帐户
  2. 点击“安全性”
  3. 搜索并单击“应用程序密码”(键入“其他应用程序”)
  4. 创建一个应用程序密码并将其复制到剪贴板中
  5. 使用您的完整电子邮件作为用户名和来自剪贴板的密码作为密码登录您的应用程序

对于Synology,这应该是:

  • 启用中继:true
  • 服务器:smtp.gmail.com
  • 端口:587
  • 始终使用TLS:true
  • 需要身份验证:true
  • 帐户:[您的完整电子邮件地址]
  • 密码:[您刚刚创建的应用程序密码]

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接