我正在SwiftMailer库下的laravel中使用Mail函数。
Mail::send('mail', array('key' => $todos1), function($message) {
$message->to(array('TEST@example.com','TESsdT@example.com','TESjxfjT@example.com','TESfssdT@example.com'))->subject('Welcome!');
});
上述功能将邮件发送给几个用户,但用户知道所有的邮件都发送给谁,因为它的收件人地址包括
To: TEST@example.com, TESsdT@example.com, TESjxfjT@example.com, TESfssdT@example.com
因此,为了纠正这一点,我使用了一个foreach
循环,它分别发送邮件
foreach($to as $receipt){
//Mail::queue('mail', array('key' => $todos1), function($message) use ($receipt)
Mail::send('mail', array('key' => $todos1), function($message) use ($receipt)
{
$message->to($receipt)->subject('Welcome!');
});
}
上面的代码运行良好。。。
我的问题是,在这个高级框架中,是否有任何功能可以向具有唯一to
地址的用户发送邮件(即,一个用户不知道有多少其他用户发送了相同的邮件,而不使用foreach
。。。
您可以使用bcc(盲复写):
Mail::send('mail', array('key' => $todos1), function($message) {
$message->to('firstemail@example.com')
->bcc(array('TEST@example.com','TESsdT@example.com','TESjxfjT@example.com','TESfssdT@example.com'))
->subject('Welcome!');
});
您可以使用CC或BCC向N个用户发送相同的html邮件:
$content = '<h1>Hi there!</h1><h2 style="color:red">Welcome to stackoverflow..</h2>';
$bcc = ['*****@gmail.com','******@gmail.com'];
$sub = "Sample mail";
Mail::send([], [], function($message) use ($content, $sub, $bcc) {
$message->from('ur-mail-id@gmail.com','name');
$message->replyTo('no-reply@gmail.com', $name = 'no-reply');
$message->to('******@domain.com', 'name')->subject($sub);
$message->bcc($bcc, $name = null);
// $message->attach('ch.pdf'); // if u need attachment
$message->setBody($content, 'text/html');
});
SwiftMailer的工作原理与您的普通电子邮件客户端(Outlook、Thunderbird…)类似。
你所做的是唯一100%正确的做法,但你仍然可以按照Steve的建议,使用密件抄送,但不要在收件人中使用noreply或其他不重要的电子邮件地址,因为所有收件人都会看到该电子邮件地址。
注意:单个函数调用不会使代码更快或减少资源占用。