PHP Mail скрывает другие адреса получателей с несколькими вызовами функций

У меня есть PHP-скрипт, который отправляет e-card нескольким получателям в вызовы функций (каждый из них массивы разделенных запятыми адресов электронной почты и mail() s). Однако, глядя на полученное электронное письмо, каждый клиент может видеть другие адреса, на которые был отправлен адрес электронной почты, заставляя меня поверить, что все они отправляются по одному электронному письму, несмотря на отдельные вызовы mail() . Вот мой текущий код:

 <?php $headers = "From: ".$_POST['email']."\r\n"; $headers .= "Content-type: text/html\r\n"; $array=explode(",", $_POST['sendto']); for ($i = 0; $i < count($array); ++$i) { mail(trim($array[$i]), "Happy Holidays!", $body, $headers); } ?> 

Как исправить это, чтобы получатель мог видеть только свой адрес электронной почты в поле «Кому»? Благодаря!

Solutions Collecting From Web of "PHP Mail скрывает другие адреса получателей с несколькими вызовами функций"

То, что вы хотите использовать, – это поле BCC.

Код:

 <?php $_POST['email'] = str_replace(array("\n", "\r"), '', $_POST['email']); $_POST['sendto'] = str_replace(array("\n", "\r"), '', $_POST['sendto']); $headers = "From: " . $_POST['email'] . "\r\n" . "Content-Type: text/html\r\n" . "BCC: " . $_POST['sendto'] . "\r\n"; mail($_POST['email'], 'Happy Holidays!', $body, $headers); ?> 

Отправьте электронное письмо отправителю, но BCC получатели. Кроме того, я удалил символы \ r и \ n из полей BCC и FROM, в противном случае разрешит атаку инъекции заголовка письма. Не забудьте сделать то же самое с $ body.