php - Laravel发送邮件报错
本文介绍了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屋!
查看全文