Chr*_*son 5 php email laravel mandrill
我无法使用BCC通过Laravel中的Mandrill插件向用户发送电子邮件.我可以发送电子邮件到"地址",如下所示:
Mail::send('emails.coach_invite', $data, function($message) use ($coach, $emails) {
foreach ($emails as $email) {
$message->to($email);
}
$message->subject($coach->first_name.' '.$coach->last_name.' has invited you to try Nudge!');
});
Run Code Online (Sandbox Code Playgroud)
这很好用.但是,如果我尝试BCC相同的用户:
Mail::send('emails.coach_invite', $data, function($message) use ($coach, $emails) {
foreach ($emails as $email) {
$message->bcc($email);
}
$message->subject($coach->first_name.' '.$coach->last_name.' has invited you to try Nudge!');
});
Run Code Online (Sandbox Code Playgroud)
什么都没发生.Mandrill甚至不承认请求进来.任何想法为什么这不起作用?如果有帮助,这是我的原始电子邮件标题:
Message-ID: <688aa904847640c9ff694521ccb85ee5@nudge-api.app>
Date: Thu, 07 Aug 2014 11:15:35 -0400
Subject: Coach McTest would like to be your Coach on Nudge!
From: Nudge Info <info@nudgeyourself.com>
Bcc: Chris Garson <chris@nudgeyourself.com>
MIME-Version: 1.0
Content-Type: text/html; charset=utf-8
Content-Transfer-Encoding: quoted-printable
Run Code Online (Sandbox Code Playgroud)
Sim*_*pel 14
我可以确认,向密件抄送用户发送电子邮件并不像Mandrill中的预期那样真正有效.
发送您想要的最简单的方法(单个电子邮件到多个地址,每个收件人只在交付列表中看到自己的名字)是将X-MC-PreserveRecipients
标头设置为false,然后使用To字段而不是Bcc发送电子邮件.
这将发送电子邮件,就好像它是单独发送给每个收件人,而不是作为群组电子邮件 - 没有人知道还有谁发送了电子邮件.
以下是使用您的示例在Laravel中执行此操作的方法:
Mail::send('emails.coach_invite', $data, function($message) use ($coach, $emails) {
foreach ($emails as $email) {
$message->to($email);
}
$message->subject($coach->first_name.' '.$coach->last_name.' has invited you to try Nudge!');
$headers = $message->getHeaders();
$headers->addTextHeader('X-MC-PreserveRecipients', 'false');
});
Run Code Online (Sandbox Code Playgroud)
请注意,我$message->to()
用来处理电子邮件,然后添加X-MC-PreserveRecipients
设置为false 的标头.