我正在将Laravel 5.0应用程序迁移到5.4并尝试在我的本地环境中测试邮件。我一直用Anitix SMTP Imposter来做这件事。这是我的.env中的邮件配置:
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我遇到以下错误:
AbstractSmtpTransport.php第383行中的Swift_TransportException: 预期的响应代码220,但代码为“500”,消息“500命令无法识别 “
我尝试使用其他程序(例如Papercut)禁用Avast,使用SSL或TLS播放配置,但我无法弄清楚导致此问题的原因。有什么想法吗?
答案 0 :(得分:1)
首先尝试: 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 all)
添加后请务必重启服务器
答案 1 :(得分:1)
最新答案,但我自己遇到了同样的问题。
MailHog不支持TLS加密。将MAIL_ENCRYPTION=null
添加到我的.env
文件中解决了我的问题。
答案 2 :(得分:0)
您可以使用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
);
答案 3 :(得分:0)
这对我有用。
MAIL_DRIVER=smtp
MAIL_HOST=mailhog
MAIL_PORT=1025
MAIL_USERNAME=
MAIL_PASSWORD=
MAIL_ENCRYPTION=null
我正在使用mailhog docker容器。
mailhog:
image: mailhog/mailhog:v1.0.0
ports:
- "1025:1025" // smtp
- "8025:8025" // web