Laravel 使用 Yahoo SMTP 发送邮件:Swift_TransportException 预期响应代码 250

Laravel Send Mail with Yahoo SMTP: Swift_TransportException Expected response code 250

我想用 Yahoo SMTP 服务发送邮件,但是 return Laravel 5.5 中的错误:

Expected response code 250 but got code "550", with message "550 Request failed; Mailbox unavailable "

之前我用Gmail SMTP服务测试过发送邮件,一切正常,但是关于Yahoo我有问题。我的 .env 配置是:

MAIL_DRIVER=smtp
MAIL_HOST=smtp.mail.yahoo.com
MAIL_PORT=587
MAIL_USERNAME=example@yahoo.com
MAIL_PASSWORD=*****
MAIL_ENCRYPTION=tls

我用这个代码发送邮件:

public function sendMail(){
        $data = []; // Empty array
        Mail::send('welcome', $data, function($message)
        {
            $message->to('john.doe@outlook.com', 'John Doe')->subject('Welcome!');
        });
        return 'ok';
    }

即使我从 Yahoo 邮件配置中激活 SMTP:

我该怎么办?

在几个不同的系统中出现了同样的错误。将邮件 "from" 地址设置为 XXXX@yahoo.com(就像在您的配置中一样)解决了错误。

MAIL_FROM_ADDRESS 为必填项,值刚好等于 MAIL_USERNAME.

你的.env应该是这样的:

MAIL_DRIVER=smtp
MAIL_HOST=smtp.mail.yahoo.com
MAIL_PORT=587
MAIL_FROM_ADDRESS=example@yahoo.com
MAIL_USERNAME=example@yahoo.com
MAIL_PASSWORD=*****
MAIL_ENCRYPTION=tls

这解决了问题。

如果您的 .env 文件没有错误并且您确信这一点,您需要清除配置缓存:

php artisan config:cache