一尘不染

预期响应代码为220,但在Laravel中收到代码为“”,消息为“”

php

我正在使用Laravel Mail函数发送电子邮件。以下是我的app/config/mail.php文件设置。

'driver' => 'sendmail',
'host' => 'smtp.gmail.com',
'port' => 587,
'from' => array('address' => 'email@gmail.com', 'name' => 'MyName'),
'encryption' => 'tls',
'username' => 'myUsername',
'password' => "password",
'sendmail' => '/usr/sbin/sendmail -bs',
'pretend' => false,

控制器邮件方法

//Send Mail     
Mail::send('sendMail', array('key' => 'value'), function($message)
{
    $message->to('EmailId@hotmail.com', 'Sender Name')->subject('Welcome!');
});

当我运行代码时,它给我以下错误消息:

Swift_TransportException

预期的响应代码为220,但得到的代码为“”,并带有消息“”

我已经SendMail.php在视图中创建了一个包含一些数据的文件。

如何解决此错误消息?


阅读 302

收藏
2020-05-29

共1个答案

一尘不染

如果您未启用要用于发送的gmail帐户的两步验证(可以在此处完成),则通常会出现此问题email。因此,首先,启用two step verification,您可以找到足够的资源来启用两步验证。启用后,您必须创建一个app password。并app password.env文件中使用。完成后,您的.env文件将看起来像。

MAIL_DRIVER=smtp
MAIL_HOST=smtp.gmail.com
MAIL_PORT=587
MAIL_USERNAME=<<your email address>>
MAIL_PASSWORD=<<app password>>
MAIL_ENCRYPTION=tls

和你的 mail.php

<?php

return [
    'driver' => env('MAIL_DRIVER', 'smtp'),
    'host' => env('MAIL_HOST', 'smtp.gmail.com'),
    'port' => env('MAIL_PORT', 587),
    'from' => ['address' => '<<your email>>', 'name' => '<<any name>>'],
    'encryption' => env('MAIL_ENCRYPTION', 'tls'),
    'username' => env('MAIL_USERNAME'),
    'password' => env('MAIL_PASSWORD'),
    'sendmail' => '/usr/sbin/sendmail -bs',
    'pretend' => false,

];

这样做之后,运行php artisan config:cachephp artisan config:clear,然后检查,电子邮件应该可以正常工作。

2020-05-29