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 协议》,转载必须注明作者和本文链接
553来自的邮件必须等于授权用户
要么是你邮箱smtp用户名和授权码错了
要么就是你发送方的邮箱和当前smtp的账号邮箱不一致