Laravel 发送邮件报错

场景

使用 163邮箱 实现 Laravel 中新用户注册时,邮箱验证消息的发送。

163邮箱 smtp 发送邮件预设端口信息

163smtp端口

我这里是在本地环境,所以端口采用 非SSL协议端口号 25

报错信息

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

错误原因以及修复

报错原因:

有些邮件服务器要求 fromusername 也就是 MAIL_FROM_ADDRESSMAIL_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 协议》,转载必须注明作者和本文链接
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 1
yema

553来自的邮件必须等于授权用户
要么是你邮箱smtp用户名和授权码错了
要么就是你发送方的邮箱和当前smtp的账号邮箱不一致

4年前 评论
alalala (楼主) 4年前
yema (作者) 4年前
alalala (楼主) 4年前
yema (作者) 4年前
alalala (楼主) 4年前

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!