通过Gmail SMTP发送电子邮件时出现错误-“请通过您的Web浏览器登录,然后重试。534-5.7.14”

173
我遇到了Gmail SMTP服务器的问题。我已经阅读了StackOverflow上关于这个主题的许多帖子。
我找到的最好的测试连接的帖子是这个
虽然非常详细地解释了我遇到的错误,但我仍然找不到答案:Google SMTP只说“请通过您的Web浏览器登录,然后重试”。 我完全确定密码和电子邮件(都是base64编码)已经编码正确。
正如您在此处看到的图片一样:

this image,

我注意到只有一个区别:用户的电子邮件和密码在两个步骤中发送。在上面的链接中,那个人同时发送了两者。谷歌不接受这种方式。 但事实是,我写了 auth login Y29udGF0... (用户以base64编码,谷歌响应:) 334 UGFzc3dvcmQ6 (意思是“密码:”) YzQ2MjJmNWVi....(将我的密码粘贴为base64并按“回车”键)
然后谷歌说: 请通过您的Web浏览器登录,然后重试。 534-5.7.14 了解更多信息,请访问https://support.google.com/mail/answer/7126229 而我遇到所有这些问题,是因为@MediaTemple和@DreamHost与PHPMailer不兼容。我以前在许多不同的主机上使用SMTP使用PHPMailer很长时间了,但在(mt)和Dreamhost上失败了。现在我正在进行的项目必须在这两个主机上运行。

我知道这已经过时了,但是另一种让它工作的方法是从Gmail服务器(已从OP中编辑掉)复制文本,并修改它,使您拥有一个具有大量字符的漂亮长URL字符串。然后,在浏览器中输入该URL,它应该可以正常工作。 - vr_driver
在我的情况下,我尝试使用 Vercel 无服务器函数,结果发现问题出在他们那里,因为他们不支持 SMTP 相关的内容。所以,如果你到这里来并且使用 Vercel 无服务器函数,你应该使用其他提供商,而不是 Gmail。 更多详情请参见 https://vercel.com/docs/solutions/email - Stanislau Buzunko
最新的解决方案使用Google应用程序密码发布[https://dev59.com/LaDia4cB1Zd3GeqPJ9Nv#64896891]。 - Neil Shah
9个回答

331

我知道这个问题有一段时间了,但最近我遇到了同样的问题,尝试了“DisplayUnlockCaptcha”修复方法仍然无法解决。下面是我是如何解决的。

前往账户安全设置 (https://www.google.com/settings/security/lesssecureapps) 并启用“允许不安全应用程序访问”,这将允许您使用谷歌 SMTP 发送邮件给非官方客户端。

更新

谷歌非常友好地列出了所有可能的问题和解决方案。虽然我建议尝试允许不安全应用程序访问设置,但请确保将其应用于正确的帐户。

  • 如果您为帐户启用了两步验证,则可能需要输入应用程序密码而不是常规密码。
  • 从 Gmail 的网络版https://mail.google.com登录您的帐户。登录后,请再次尝试登录邮件应用程序。
  • 访问http://www.google.com/accounts/DisplayUnlockCaptcha并使用您的 Gmail 用户名和密码进行登录。如果被要求,输入扭曲图片中的字母。
  • 您的应用程序可能不支持最新的安全标准。尝试更改一些设置,以允许不安全的应用程序访问您的帐户。
  • 确保您的邮件应用程序没有设置为过于频繁地检查新邮件。如果您的邮件应用程序每 10 分钟以上检查一次新消息,则该应用程序可能会被阻止访问您的帐户。

4
最近我在使用PHPmailer。我试图从我的本地服务器(WAMP)发送邮件,但由于出现了这个错误,我无法发送电子邮件。经过两个小时的努力后,我发现了你提供的“正确”答案来解决我的错误。非常感谢。 - Nono
1
非常感谢,这就是我一直在寻找的缺失步骤。谢谢。 - Andoy Abarquez
1
注意:如果您要通过Outlook访问您的帐户,您必须执行此操作。 - Ben Morris
3
请注意,我必须实际打开两步验证,但一旦我做到了这一点,它就可以正常工作了。(由于某种原因,在此之前,它可以在一台计算机上工作,而在另一台计算机上则不能。) - Erhannis
1
警告他人:在我的情况下,像上面展示的设置Gmail服务器是有效的,但不是立即生效的。它们可能需要几分钟时间才能生效(也许是10分钟?)。 - Gabriel
显示剩余10条评论

151

4
在我做了上面的“不太安全”的操作之后,这个对我起作用了,但是我显然不理解为什么会起作用。 - Abdillah
我完全同意@Abdillah的观点。事实上,在这个方法对我起作用之后,谷歌还向我的手机发送了一条短信,提醒我有可疑活动,并要求我访问google.com/blocked!! - Fr0zenFyr
1
这对我也起作用了。没有其他方法奏效。奇怪的是,访问他们提供的链接并没有起作用。非常感谢您的答案。真的很奇怪,似乎这并没有被记录下来。 - James Bowler
谢谢。它工作得非常好。 - saravanavelu
非常感谢。这对我有用。 - umunBeing
显示剩余3条评论

39

我最近也收到了这样的消息,毕竟我将一个通过Google SMTP发送的Web应用程序的数据中心位置进行了切换。

Google认为有问题的URL是: https://support.google.com/mail/answer/78754。在该链接中,其中一步是重置您的密码。 不巧的是,我还收到了一封来自Google的电子邮件,主题为“已阻止可疑登录”,并指示我更改密码。

重置密码后,我又可以像往常一样使用Google SMTP发送邮件了。


4
谢谢!这是正确的答案。我登录了,我改变了我的密码,之后一切都正常了。 - f.ardelian
1
在我的情况下,我不得不做两件事:更改密码,然后启用不安全访问,因为即使启用了不安全访问,它也会被重置为禁用,而且我什么都没做,非常奇怪。 - michabbb
此外,您需要检查允许使用的帐户中是否存在可疑访问。通过这种方式,您可以授予来自使用您的 Gmail 帐户的实例 | 服务器的访问权限。之后,我更新了我的密码,现在已经准备好了! - Franco Gil

25

我知道这个问题已经有答案了,但对于新手来说,以下两种解决方案可能会有帮助:

  1. 确保您的Gmail允许低安全应用程序登录,您可以在此处打开此功能: https://www.google.com/settings/security/lesssecureapps
  2. 更改您的密码。

3
这个答案在今天2021年9月1日进行了测试,仍然有效。 - Philip Enc
2
我按照上面的一切都做了,直到我更改了密码才解决了问题。非常感谢!(已测试并可行,2017年1月18日) - Ilya
@Ilya 很高兴听到它对你有帮助。 - H Aßdøµ
1
使用“较不安全的应用程序”方法已经经过测试,并且截至今天,2017年8月19日,可以正常工作 :) - Sun Lee
1
启用“较不安全的应用程序”后,您需要更改密码,然后它才能正常工作。 - Chandramani

15

有两种方法可以解决此问题,根据您如何访问Google,只有其中一种方法可能有效。

第一种方法是使用https://accounts.google.com/DisplayUnlockCaptcha链接授权您的IP或客户端机器。这可以解决在客户设备(例如移动应用程序或桌面应用程序)上出现的身份验证问题。我建议首先尝试此方法,因为它会导致账户安全性的总体降低较小。

如果上述链接不起作用,则是因为正在由未与您特定位置关联的应用程序或设备发起会话。例如:

  • 使用远程服务器检索数据的应用程序,例如网站或其他Google服务器(如我的情况)
  • 公司邮件服务器代表您获取邮件

在所有这些情况下,您必须使用上面提到的https://www.google.com/settings/security/lesssecureapps链接。

TLDR; 首先检查验证码链接,如果不起作用,请尝试另一个链接并启用较不安全的应用程序。


对我很有用,谢谢。 - Alejandro Gonzalez
这解决了我的问题,谢谢。 - temo
谢谢。问题已解决! - sebieire

10

使用Gmail SMTP发送邮件,需要更改您的帐户设置。登录到您的Gmail帐户,然后按照下面的链接更改您的Gmail帐户设置,以便使用您的应用程序和程序发送邮件。 https://www.google.com/settings/security/lesssecureapps

注意:此设置不适用于启用了两步验证的帐户。这种帐户需要一个特定于应用程序的密码才能访问不安全的应用程序。


它对我也有效。我正在使用hMail服务器。 - Mukesh
@Muk,很高兴它对你起作用了。 - Avnish Tiwary

2
我也遇到了这个问题。Google将我的Mac检测为新设备并将其阻止。要解除阻止,在Web浏览器中登录您的Google帐户,然后转到“帐户设置”。
向下滚动,您会找到“最近活动”。在下面点击“设备”。
您的设备将被列出。确认您的设备。在我执行此操作并降低保护措施后,SMTP开始正常工作。

0
这个问题至少存在两个我已经观察到的问题: 1)可能是因为你的发件人用户名或密码不正确。 2)或者根据上面Avinash的回答,这可能是账户上的安全条件。一旦你尝试使用SMTP发送邮件,你通常会收到一个通知,提示可能是未经授权的尝试访问你的账户,如果不是,则用户可以跟随链接将设置更改为lessSecureApp。一旦完成这个步骤并再次尝试smtp SendMail,它就可以工作了。

0

答案中的链接似乎已经失效。 - Pang

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