Laravel 发送邮件报错
场景
使用 163邮箱 实现 Laravel 中新用户注册时,邮箱验证消息的发送。
163邮箱 smtp 发送邮件预设端口信息

我这里是在本地环境,所以端口采用 非SSL协议端口号 25
报错信息
Expected response code 250 but got code "553", with message "553 Mail from must equal authorized user "
错误原因以及修复
报错原因:
有些邮件服务器要求 from 和 username 也就是 MAIL_FROM_ADDRESS 和 MAIL_USERNAME 必须一致,163邮箱 就是这样。
修复
默认的 Laravel 中 .env 文件关于邮箱发送的默认配置有
MAIL_DRIVER=smtp
MAIL_HOST=smtp.163.com
MAIL_PORT=25
MAIL_USERNAME=your_username
MAIL_PASSWORD=your_authorization_code
MAIL_ENCRYPTION=ssl
然而在 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_NAME指的是邮件中显示的发件人名字,可自由定义,如Pannio。
最后应该是这个🦆
MAIL_DRIVER=smtp
MAIL_HOST=smtp.163.com
MAIL_PORT=25
MAIL_USERNAME=your_username
MAIL_PASSWORD=your_authorization_code
MAIL_ENCRYPTION=ssl
MAIL_FROM_ADDRESS=your_username
MAIL_FROM_NAME=Pannio
本作品采用《CC 协议》,转载必须注明作者和本文链接
关于 LearnKu
推荐文章: