当前位置: 首页 > 知识库问答 >
问题:

无法从Yii SwiftMail向GMail发送电子邮件:预期响应代码250,但收到代码“535”

罗诚
2023-03-14

我得到了这个错误代码:

预期响应代码为250,但收到代码“535”,消息“535-5.7.8用户名和密码不被接受。有关详细信息,请访问535 5.7.8https://support.google.com/mail/answer/14257

然而,我使用的是TLS,那么它怎么可能更安全呢?!

还有一些其他问题,但它们不是针对Yii的。

一些代码:

Yii::$app->mailer->setTransport([
  'class' => 'Swift_SmtpTransport',
  'host' => BestSales::getConfigValue('smtp.host'),
  'username' => BestSales::getConfigValue('smtp.username'),
  'password' => BestSales::decrypt(BestSales::getConfigValue('smtp.password.encrypted')),
  'port' => BestSales::getConfigValue('smtp.port'),
  'encryption' => BestSales::getConfigValue('smtp.encryption'), // 'tls', 'ssl'
]);

价值观:

[
    'smtp.host' => 'smtp.gmail.com',
    'smtp.username' => 'contact@xxxxxxxxxx.com',
    'smtp.password.encrypted' => 'xxxxxxxxxxx',
    'smtp.port' => '587',
    'smtp.encryption' => 'tls',
]

我登录Gmail,发现以下消息:

登录尝试阻止了
嗨,最佳销售,有人刚刚试图从不符合现代安全标准的应用程序登录您的Google帐户contact@xxxxxxxx.com。详细信息:2016年5月17日星期二23:27(东部夏令时间)美国弗吉尼亚州阿什本*我们强烈建议您使用Gmail等安全应用程序访问您的帐户。Google制作的所有应用程序都符合这些安全标准。另一方面,使用不太安全的应用程序可能会使您的帐户易受攻击。了解更多。

Google停止了此登录尝试,但您应该查看最近使用的设备

Yii docs表示,“tls”是一种选择。http://www.yiiframework.com/doc-2.0/yii-swiftmailer-mailer.html

是的,我验证了解密值是正确的密码。我已经去过了https://accounts.google.com/DisplayUnlockCaptcha.我不能启用2-factor,因为我没有这个帐户,它需要一个电话号码。我现在不能打开“允许不安全访问”,因为这是一个客户的帐户,但我已经问过了。(尽管如此,我还是不允许不安全的访问。)

共有3个答案

宋凌龙
2023-03-14

嘿,经过几个小时的重新拼接,有一些提示给你:

1-在gmail上启用较少的安全应用程序访问

2-访问此链接:https://www.google.com/accounts/DisplayUnlockCaptcha

3-在配置/web上。php添加以下参数:



        'encryption' => 'tls', 
        'streamOptions' => [
        'ssl' => [
            'allow_self_signed' => true,
            'verify_peer' => false,
            'verify_peer_name' => false,
        ],
    ],

赫连宏伯
2023-03-14

首先,在加密中使用ssl,在端口中使用值465,因为双因子认证不使用您的gmail密码,但创建一个gmail APP Password,更好地从那里访问不太安全的应用程序,这里是创建应用程序密码的链接。

从烈
2023-03-14
   1. Enable the 2-step verification
   2. Create App Passwdord to be use by your system HERE and use it 
   3. Now go to .env file and make these changes
        
        MAIL_DRIVER=smtp
        MAIL_HOST=smtp.gmail.com
        MAIL_PORT=587
        MAIL_USERNAME=youremail@gmail.com
        MAIL_PASSWORD=password generated from app password
        MAIL_ENCRYPTION=tls
        
        This worked fine on mine.

    For 2-step verification 
       https://www.google.com/landing/2step/
    
    For App Password
       https://security.google.com/settings/security/apppasswords


    
 类似资料:
  • 我最近在尝试通过gmail发送邮件时遇到了一个SwiftMail错误。 我试图通过我的gmail发送邮件,谷歌认为我是一个垃圾邮件(可能是因为我的请求太快了),我收到了他们的邮件,说我的帐户可以访问,我告诉他们是我。我能够毫无问题地发送邮件,而这只是刚刚发生的事。 这是我的env文件的内容。

  • 问题内容: 我正在使用Laravel Mail函数发送电子邮件。以下是我的文件设置。 控制器邮件方法 当我运行代码时,它给我以下错误消息: Swift_TransportException 预期的响应代码为220,但得到的代码为“”,并带有消息“” 我已经在视图中创建了一个包含一些数据的文件。 如何解决此错误消息? 问题答案: 如果您未启用要用于发送的帐户的两步验证(可以在此处完成),则通常会出现

  • 我有一个代码,就像半年前一样工作。它基本上发送电子邮件。 这是例外 (534, b'5.7.14 5.7.14 KL7\u 2qGSLW9IBjP8dKKgP67bEgyKNc5ls76dnVDZcUlVQjJUQb0JX9BIVi\u Agb84vKNOKB 5.7.14fshB0ngZ_Tn8ocDpDHKavRKXmluVjHo5YM7ADKENtWn4aVTxyvaBlbXRGpA1EBh

  • 我用竹子来让我的网站访问者填写并发送一份联系表。 我创建了一个服务帐户 我授予它全域权限 我添加了以下范围:https://www.googleapis.com/auth/gmail.addons.current.action.compose https://www.googleapis.com/auth/gmail.addons.current.message.metadatahttps://w

  • 我正在节点中创建一个系统。js,用户为产品付款,付款后收到一张带有特殊代码的收据,然后可以兑换。 在用户付款后被重定向到成功页面后,我如何获取用户的电子邮件和paymentID(他们用它付款)。 我使用的是“paypal rest sdk”,其他一切都正常工作。 付款授权 谢谢一堆!

  • 问题内容: 我最近在尝试通过gmail发送邮件时遇到了SwiftMail错误。 我试图通过gmail发送邮件,而google认为我是垃圾邮件(可能是因为我请求的速度太快了)。我收到了他们的来信,说我的帐户可以访问,我告诉他们是我。我能够毫无问题地发送邮件,而这只是现在发生的事情。 这是我的env文件的内容。 问题答案: 我在互联网上进行了研究,得出的一些答案包括启用“ 访问较小的应用程序 ”和“