Php Laravel Swift邮件发送程序错误电子邮件地址的例外情况?
我有一个超级奇怪的问题,我会详细解释为什么在事实发生后它是奇怪的 代码Php Laravel Swift邮件发送程序错误电子邮件地址的例外情况?,php,email,laravel,swiftmailer,Php,Email,Laravel,Swiftmailer,我有一个超级奇怪的问题,我会详细解释为什么在事实发生后它是奇怪的 代码 Mail::send('emails.cron.loggedinusers', $data, function($message){ // Get Admin user emails $adminUserEmails = DB::table('users')->where('user_role', 'admin')->lists('email'); // Build nice comm
Mail::send('emails.cron.loggedinusers', $data, function($message){
// Get Admin user emails
$adminUserEmails = DB::table('users')->where('user_role', 'admin')->lists('email');
// Build nice comma separated list of Admin Emails addresses
// and also wrap each email in quotes
$filter = function($adminUserEmails){ return "'$adminUserEmails'"; };
$toEmails = array_map($filter, $adminUserEmails);
$toEmails = implode(', ', array_values($toEmails));
print_r($toEmails);
// Send email to Admins Only
$message->from('one@email.com', 'Jason');
$message->to('one@email.com')->cc($toEmails);
$message->subject('[TIMECLOCK ALERT] Users are logged into the Timeclock!');
});
当我运行上面的代码,从数据库中获取4个电子邮件地址,并尝试向他们发送电子邮件时,我收到了这条令人讨厌的错误消息
请记住,我已更改此处显示的实际电子邮件值以保护其身份,但脚本中的真实电子邮件都是合法电子邮件
Swift_RfcComplianceException
Address in mailbox given ['one@email.com', 'two@email.com',
'three@email.com', 'four@email.com']
does not comply with RFC 2822, 3.6.2.
现在,如果我将变量$toEmails
替换为实际的字符串文本。。。
$message->to('one@email.com)->cc('one@email.com', 'two@email.com', 'three@email.com', 'four@email.com');代码>
然后它发送电子邮件没有问题,没有错误信息
这对我来说既奇怪又奇怪,因为我正在将$toEmails
变量打印到屏幕上,并将其输出复制/粘贴到上面的电子邮件代码中,它可以正常发送邮件,但只要我使用变量而不是文本字符串,我就会收到上面可怕的错误消息。我无法理解为什么会这样做,如果你有任何想法,请与我分享???你收到的错误消息在这里有点误导,也许值得一次错误报告。是关于发起人字段的,而to
和cc
不是这样的发起人字段,而from
将是这样的
然而,信息的另一部分准确地说明了问题所在:
邮箱中给定的地址[”one@email.com', 'two@email.com', 'three@email.com', 'four@email.com“
]不符合要求
没错。这不是邮箱,而是邮箱列表。Swift mailer在此处需要一个邮箱,而不是邮箱列表。这就是信息告诉你的。您未能在此提供邮箱。您可能认为可以在此处提供邮箱列表,但很明显,这给了您一个例外,因此这不起作用
您已经找到了解决方案,没有提供列表,而是一个接一个地添加邮箱,每个参数添加一个邮箱
在这里,这更像是一个问题,$message
类的接口所期望的是什么。由于您没有注意到错误信息中误导性的部分,我猜您没有被该部分误导。我认为这是同样的问题@ZawMyoHtet我知道乍一看他们看起来很相似…区别在于他们没有将电子邮件地址传递到电子邮件功能中,也没有使其全球化,我的代码可以访问电子邮件,错误甚至会在列表中打印出电子邮件地址……这是一个非常奇怪的问题,它如何作为字符串而不是变量工作