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

无法用yii2 swftmailer发送邮件

柴衡
2023-03-14

我得到错误时,尝试发送邮件与YII::$app-

预期响应代码250,但得到代码535,消息535-5.7.8
用户名和密码不接受。
在535 5.7.8了解更多https://support.google.com/mail/?p=BadCredentials59sm3639427wrc.23-

以下是config/common.php文件中的参数

'mailer'       => [
        'class'            => 'yii\swiftmailer\Mailer',
        'useFileTransport' => false,
        'transport'        => [
            'class'      => 'Swift_SmtpTransport',
            'port'       => '587',
            'encryption' => 'tls',
            'username' => 'myemailbox@yahoo.com',
            'password' => 'myemailpass',
            'host' => 'smtp.mail.yahoo.com',
        ],
    ],

我已经在雅虎账户设置中启用了“允许使用不太安全登录的应用程序”功能。尝试"应用程序密码"选项,但得到相同的结果。在使用雅虎smtp之前,我用谷歌smtp尝试了同样的方法。错误消息仍然指向https://support.google.com页。是否可能Apache缓存登录并传递到smtp服务器?

当然,我查看了谷歌支持页面,并按照其中的说明进行了操作https://accounts.google.com/DisplayUnlockCaptcha 页

共有2个答案

曾泳
2023-03-14

我解决了这个案子,但没有发现确切的原因。可能是某种配置错误的缓存。所以我把这个直接设置放在compose函数之前:

\Yii::$app->mailer->setTransport([
        'class'      => 'Swift_SmtpTransport',
        'port'       => '587',
        'encryption' => 'tls',
       'username' => 'myemailbox@yahoo.com',
        'password' => 'myemailpass',
        'host' => 'smtp.mail.yahoo.com',
    ]);

它开始起作用了。

连晟
2023-03-14

尝试更改端口

'mailer'       => [
        'class'            => 'yii\swiftmailer\Mailer',
        'useFileTransport' => false,
        'transport'        => [
            'class'      => 'Swift_SmtpTransport',
            'port'       => '465',
            'encryption' => 'tls',
            'username' => 'myemailbox@yahoo.com',
            'password' => 'myemailpass',
            'host' => 'smtp.mail.yahoo.com',
        ],
    ],
 类似资料:
  • 我试图通过节点邮件发送电子邮件,但无法发送电子邮件,并显示以下错误。 我使用的是nodemailer文档中所示的确切代码。 这是我正在使用的服务器端代码。 这在几天前运行良好,在其他邮件客户端和gmail上也运行良好,因此我认为这个问题可能与gmail帐户的任何安全设置有关。

  • 我想用Java发送一封邮件,但使用我在http://www.tutorialspoint.com/Java/java_sending_email.htm找到的这篇泰文教程是行不通的。 这里是我的主要方法 我有以下错误: javax.mail.MessagingException:无法连接到SMTP主机:localhost,端口:25;嵌套异常为:java.net.connectException:

  • responseerror:禁止在d:\node-projects\ecom\node_modules@sendgrid\client\src\类\client.js:146:29在processTicksAndRejections(internal/process/task_queues.js:93:5){ 代码:403,response:{headers:{server:'nginx',dat

  • 我的: 但是邮件不会发送到该地址,在控制台中,当我单击时,正在打印,但它不会发送任何电子邮件。 我用的是Django 1.3.7和Python 2.6。 不知道是版本的问题还是什么逻辑问题。

  • 我有这个发邮件的密码 此代码为除之外的任何邮件提供商发送邮件。 这可能是什么原因

  • 我目前有一个邮件服务器正在运行。我可以通过 mywebsite.com/roundcube/ 从这个网站我可以发送和接收电子邮件适当。日志显示所有的邮件进出都很好。我从这里发到我的gmail账户,然后又发回来。 然而,我真正想做的是使用javax mail从java发送一些邮件。