预期的响应代码220,但在本地环境中在Laravel 5.4中发送邮件时获得代码“500”
问题描述:
我正在将Laravel 5.0应用程序迁移到5.4,并试图在本地环境中测试邮件。我一直使用Anitix SMTP Imposter。下面是我的邮件配置看起来像我的.ENV:预期的响应代码220,但在本地环境中在Laravel 5.4中发送邮件时获得代码“500”
MAIL_DRIVER=smtp
MAIL_HOST=127.0.0.1
MAIL_PORT=25
MAIL_USERNAME=null
MAIL_PASSWORD=null
MAIL_ENCRYPT=null
这在Laravel(4,4.2,5.0)的所有先前版本总是工作,但突然有5.4,我发现了以下错误:
Swift_TransportException in AbstractSmtpTransport.php line 383: Expected response code 220 but got code "500", with message "500 Command not recognized "
我已经试过禁用停住,使用替代程序,如Papercut,通过使用SSL或TLS与配置玩,但我想不出是什么导致这一点。有任何想法吗?
答
首先尝试:php artisan config:cache并重新启动本地服务器,也许Laravel使用旧的邮件数据。
用于开发目的https://mailtrap.io/为您提供需要添加到.env文件中的所有设置。例如:
Host: mailtrap.io
Port: 25 or 465 or 2525
Username: cb1d1475bc6cce
Password: 7a330479c15f99
Auth: PLAIN, LOGIN and CRAM-MD5
TLS: Optional
否则,即可获得在.ENV文件中添加的SMTP凭证从邮件(如Gmail n的所有)
添加后实施的目的一定要重新启动服务器
答
您可以使用https://mailtrap.io/ 它将为您提供所有必要的详细信息,以便您检查本地计算机中的邮件功能,包括用户名,密码,端口,主机等。
如果仍然有同样的问题的问题,在 文件config/mail.php
在您的项目,而不是使用.ENV文件中使用这些细节。
return array(
"driver" => "smtp",
"host" => "mailtrap.io",
"port" => 2525,
"username" => "mailtrap.io_your_username",
"password" => "mailtrap.io_your_password",
"sendmail" => "/usr/sbin/sendmail -bs",
"pretend" => false
);
谢谢,config:cache命令没有改变任何东西。我使用mailtrap.io进行设置,并且它可以这样工作,但我仍然想知道为什么它不像我以前的Laravel版本中那样使用本地应用程序。 – Chris