预期的响应代码220但在本地环境中在Laravel 5.4中发送邮件时得到代码“500”

时间:2017-02-18 18:28:17

标签: laravel smtp local swiftmailer

我正在将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播放配置,但我无法弄清楚导致此问题的原因。有什么想法吗?

4 个答案:

答案 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