You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel 8 报邮箱不符合RFC 2822规范但收件人格式正确如何解决

触发原因

  • 错误提示中出现的[Service Cotation Groupage]是显示名称而非邮箱地址,说明程序将显示名称误作为邮箱参数传入了邮件地址校验逻辑,不符合RFC 2822的邮箱格式要求。
  • 外层传参$mail为合法邮箱的前提下,问题大概率出在SendCotationEmail自定义邮件类内部:Laravel 邮件类的to()、from()、replyTo()等地址配置方法的第一个参数要求为邮箱地址,第二个为可选的显示名称,如果参数顺序写反、或者变量赋值混淆,就会把名称传入邮箱参数位触发校验失败。
  • 也有可能是外层$mail变量取值错误,比如误取了联系人数组中的名称字段而非邮箱字段,可先调试确认该变量实际值。

解决方法

  1. 先调试确认外层传入的$mail变量实际值,确认是am.name@example.com的合法邮箱字符串,排除外层传参错误。
  2. 核查SendCotationEmail类的build()方法中的地址配置代码,确认地址类方法的传参顺序正确,示例如下:
// 正确写法:第一个参数为邮箱,第二个参数为可选显示名
public function build()
{
    return $this->to($userEmail, $userName)
        ->from('system@your-domain.com', '业务通知')
        ->view('emails.cotation');
}

避免出现以下参数顺序颠倒的错误写法:

// 错误写法:将显示名作为第一个参数传入,会触发邮箱格式校验错误
$this->to($userName, $userEmail)
  1. 如果是在邮件类内部动态拼接收件人信息,先打印校验传给地址方法第一个参数的取值,确保为合法邮箱格式即可。

内容的提问来源于stack exchange,提问作者Amaury Schmitt

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 01:54:03