我正在使用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
文件。
如何解决此错误消息?
7条答案
按热度按时间qmelpv7a1#
当您没有为
gmail
帐户启用两步验证时,通常会出现此问题(可以通过here完成)。因此,首先,启用two step verification
,您可以找到大量资源来启用两步验证。启用后,然后你必须创建一个app password
。并在你的.env
文件中使用app password
。当你完成它时,你的.env
文件将看起来像这样。你的
mail.php
完成此操作后,运行
php artisan config:cache
和php artisan config:clear
,然后检查,电子邮件应该可以工作。n3schb8v2#
在我的情况下,我必须设置
这段代码的其余部分和@Sid说的一样。
而且我觉得环境文件和app/config/mail.php都编辑是不必要的,只用一种方法就可以了。
根据@Zan评论编辑
如果需要启用tls保护,请使用以下设置。
查看这里的一些其他gmail设置
jhdbpxl93#
什么帮助了我...将sendmail参数从-bs改为-t。
krcsximq4#
如果你使用Swift Mailer:请确保您的$transport变量与下面类似,基于我所做的测试,错误是由ssl和端口错误配置引起的。注意:你必须在传输变量中包含'ssl'或'tls'。
示例代码:
tsm1rwdh5#
我也面临着同样的问题。在研究了谷歌和StackOverflow之后。我发现了一个非常简单的解决方案
首先,你需要像这样设置环境
您必须更改您的Gmail地址和密码
现在,您必须通过以下链接https://myaccount.google.com/lesssecureapps来访问不太安全的应用程序
n7taea2i6#
对我来说,问题是端口。我首先错误地使用了端口465,它适用于
SSL
,但不适用于TLS
。所以关键的事情是将端口更改为587。2lpgd9687#
它通过激活我的Google帐户的不太安全的应用程序访问设置和以下环境变量设置对我起作用: