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我知道乍一看他们看起来很相似…区别在于他们没有将电子邮件地址传递到电子邮件功能中,也没有使其全球化,我的代码可以访问电子邮件,错误甚至会在列表中打印出电子邮件地址……这是一个非常奇怪的问题,它如何作为字符串而不是变量工作