如何解决 Laravel 中的 Sendgrid SMTP 错误 250 响应

How to solve the Sendgrid STMP Error 250 response in Laravel

我正在使用 Sendgrid 作为邮件服务。

我的帐户启用了双重身份验证。

我的.env

MAIL_DRIVER=smtp
MAIL_HOST=smtp.sendgrid.net
MAIL_PORT=587
MAIL_USERNAME=S4gYKuoPRBaOAy7qT__J8w
MAIL_PASSWORD=SG.APIKEYPASSWORD
MAIL_ENCRYPTION=tls
MAIL_FROM_NAME="Xyz Name"
MAIL_FROM_ADDRESS=xyz@xyz.com

如果我执行邮件,则会出现以下错误。

Swift_TransportException:使用 2 个可能的身份验证器无法在用户名为“S4gYKuoPRBaOAy7qT__J8w”的 SMTP 服务器上进行身份验证。 Authenticator LOGIN 返回预期响应代码 250,但得到空响应。 Authenticator PLAIN 返回预期响应代码 250,但得到空响应。

如果我禁用双因素身份验证,那么它会使用帐户的用户名和密码,但如果我这样做,sendgrid 将暂停我的帐户。

任何人都遇到过这个问题。如果是,请告诉我您是如何解决问题的。

尝试使用文字值 'apikey' 作为 MAIL_USERNAME,并使用您在设置 >> API 密钥中创建的 API 密钥作为 MAIL_PASSWORD.

从 2020 年 11 月 18 日开始,他们现在强制执行 2FA,并且在使用 2FA 时使用密钥而不是 user/password 进行身份验证。我刚换了一个,这对我有用。

例如,

MAIL_DRIVER=smtp
MAIL_HOST=smtp.sendgrid.net
MAIL_PORT=587
MAIL_USERNAME=apikey
MAIL_PASSWORD=SG.xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

我们应该突出这个

MAIL_USERNAME=apikey

所有

的字符串"apikey" is literally the MAIL_USERNAME`