7

我正在为我的网站使用 Codeigniter 2。当向多个用户发送电子邮件时,在客户端(gmail、hotmail、..)上,它会在详细信息上显示所有地址,我如何隐藏地址以仅显示收件人地址。

谢谢

4

2 回答 2

17

使用 bcc 发送批量电子邮件,如下所示:

function batch_email($recipients, $subject, $message) 
{
  $this->email->clear(TRUE);
  $this->email->from('you@yoursite.com', 'Display Name'); 
  $this->email->to('youremailaddress@yourserver.com');
  $this->email->bcc($recipients);
  $this->email->subject($subject);
  $this->email->message($message);  

  $this->email->send();

    return TRUE;

}

$recipients 应该是逗号分隔的列表或数组

这意味着您将获得电子邮件的副本,但所有其他收件人都将被密件抄送,因此不会看到彼此的地址

于 2013-07-21T22:12:14.463 回答
7

我认为您正在将所有收件人分配给单个to方法,例如

$this->email->to('one@example.com, two@example.com, three@example.com');

这将立即邮寄给所有收件人。为防止显示所有收件人,请为每个用户单独邮寄,如下所示,

foreach ($list as $name => $address)
{
    $this->email->clear();
    $this->email->to($address);
    $this->email->from('your@example.com');
    $this->email->subject('Here is your info '.$name);
    $this->email->message('Hi '.$name.' Here is the info you requested.');
    $this->email->send();
}

这里$list包含收件人姓名和电子邮件 ID 的数组。确保clear()在每次迭代开始时使用。

于 2013-07-16T04:07:06.610 回答