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

时间:2018-01-14 12:48:22

标签: php email laravel-5 smtp yahoo-mail

我想用Yahoo SMTP服务发送邮件,但在Laravel 5.5中返回错误:

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

在此之前我测试了使用Gmail SMTP服务发送邮件,一切都还可以,但关于雅虎我有问题。我的.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:

enter image description here

我该怎么办?

3 个答案:

答案 0 :(得分:1)

在几个不同的系统中遇到了同样的错误。设置邮件"来自"地址到XXXX@yahoo.com(就像在您的配置中一样)解决了错误。

答案 1 :(得分:1)

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

这解决了问题。

答案 2 :(得分:0)

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

php artisan config:cache