被这个错误坑了两次,感觉一定要总结出来了TAT

错误情况

Expected response code 250 but got code "553", with message "553 Mail from must equal authorized user "

这里以163网易邮件为例

ps.当然出现这个问题的原因不一定是我所说的注意事项,请对号入座

错误原因

因为Laravel的.env中的默认配置项只有以下几项

MAIL_DRIVER=smtp
MAIL_HOST=smtp.163.com
MAIL_PORT=465
MAIL_USERNAME=your_username
MAIL_PASSWORD=your_authorization_code
MAIL_ENCRYPTION=ssl

这里要注意的是在MAIL_PASSWORD这一栏中我写的是授权码而不是密码,这里的授权码需要去163中设置,不详述。


但是我们注意一下config/mail.php中有两项

'from' => [
'address' => env('MAIL_FROM_ADDRESS', 'hello@example.com'),
'name' => env('MAIL_FROM_NAME', 'Example'),
],

这里的MAIL_FROM_ADDRESS,MAIL_FROM_NAME在配置文件中是没有的。所以我们应该加到.env

MAIL_FROM_ADDRESS填写你的邮件,MAIL_FROM_ADDRESS填写你的名字(可任取)

然后重启一下服务器即可。