我创建了一个简单的CC脚本,它将从数据库附加到Mail :: send。但是,之前的代码已成功提交并正常工作,直到本周末晚些时候,它再次返回此消息以及Laravel错误。
Swift_RfcComplianceException
邮箱中的地址[email1 @ domain.com,email2 @ domain.com] 不符合RFC 2822,3.6.2。
这是我从数据库中提取电子邮件的代码。这将取决于所有属性是否都有电子邮件。
if( !empty($contact) ) {
$property_contact = implode(',', array_filter(array_unique($contact)));
}
// Output when using dd($property_contact);
// “email1@domain.com,email2@domain.com”
以下是Mail::send
//send email to owner
Mail::send('_dash.emails.profile', $contacts, function ($message) use ($property_contact) {
$ownerEmail = "myemail@info.com";
$ownerName = "Information";
$recipient_name = Request::get('firstname') .' '. Request::get('lastname');
$recipient_email = explode(';', Input::get('email')); // Need to explode the array if value are more than one
print_r($property_contact);
$message->from($recipient_email[0],$recipient_name);
$message->to($ownerEmail,$ownerName)->cc($property_contact);
$message->subject("Profile Update");
});
解释
这是为用户更新其个人资料时,它会更新/通知管理员他们的新信息以及其他物业经理($ property_contact)。这些物业经理将被添加为CC,物业经理的数量将取决于该用户连接的物业数量。
如果用户有9个属性连接,每当他更新他的个人资料时,这9个属性管理员都会收到更新信息。
案件问题:
根据Laravel错误信息,它不符合从我的脚本传递的电子邮件格式。 我相信我不理解这个Laravel从我的脚本中寻找传递值的标准格式。如果我传递1个值,它工作正常。但是,每当我添加更多电子邮件时,最终都会出现此错误。
感谢您的帮助。我很感激。
答案 0 :(得分:2)
cc()
方法接受一个电子邮件或数组中的多个电子邮件地址
因此,只需编辑您的$property_contact
变量,您就可以了:
$property_contact = array_filter(array_unique($contact));
代码:https://github.com/laravel/framework/blob/5.2/src/Illuminate/Mail/Message.php#L132。使用相同方法的所有方法,例如to()
,cc()
bcc()
,replyTo()
。