php - Laravel发送邮件报错

查看:608
本文介绍了php - Laravel发送邮件报错的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

报错为Address in mailbox given [] does not comply with RFC 2822, 3.6.2.

发送邮件代码如下

    Mail::send('mail', ['email' => $email, 'vcode' => $vcode], function ($message) use ($email) {
        $message->to($email)->from(env('MAIL_USERNAME'))->subject('安全验证邮件');
    });

请问一下这是什么原因啊?

解决方案

错误所在代码:

/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/Headers/MailboxHeader.php
    private function _assertValidAddress($address)
    {      
    
        if (preg_match('/^'.$this->getGrammar()->getDefinition('addr-spec').'$/D',
            $address)) {
            throw new Swift_RfcComplianceException(
                'Address in mailbox given ['.$address.
                '] does not comply with RFC 2822, 3.6.2.'
                );
        }
    }

首先,看看你的 $address 是不是为空。

在不为空的前提下,在考虑是否是规范问题。RFC2822,3.6.2 的规范如下:

from 字段由字段名 "From" 和一个冒号,一级一个或多个邮箱列表组成。

因此,这是不合法的:

'example@qq.com'

这才是合法的:

'"From:" example@qq.com'

这篇关于php - Laravel发送邮件报错的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆