我想用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:
我该怎么办?
答案 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