Как запретить получателям видеть, какие другие адреса электронной почты получили электронную почту? - PullRequest
0 голосов
/ 10 октября 2011

Я использую этот скрипт для отправки уведомлений друзьям друзей. проблема в том, что все получатели узнают, кто еще получил это письмо. Как настроить код так, чтобы электронные письма все еще отправлялись всем, но они не могли видеть, кто еще получил его?

Код:

    $sql = "SELECT STRAIGHT_JOIN DISTINCT email from
    friend_email_ids WHERE my_id='$id'";
    $result = mysql_query($sql);

    $query = mysql_query($sql) or die ("Error: ".mysql_error());

    if ($result == "")
    {
    echo "";
    }
     echo "";


   $rows = mysql_num_rows($result);
   $emails = array(); 

   if($rows == 0)
   {
   print("");

    }
   elseif($rows > 0)
   {
    while($row = mysql_fetch_array($query))
        array_push($emails, $row['email']);

   {

   $email = $row['email'];


  print("");
  }

  }

$headers = "MIME-Version: 1.0\r\n";
$headers .= "Content-Type: text/html; charset=ISO-8859-1\r\n";
$headers .= "From: $usermail\r\n";
$subject = "$full_name added";
$message = "<html><body>";
$message .= "Hello, <br><br>$full_name posted someth<br><br>";
$message .= "<a href=www.domain.com/signup.php?t=&sign=>Click here.</a><br><br>";
$message .= "</body></html>";
mail(implode(",", $emails), "Subject: $subject",
$message, "$headers" );
echo "";

Ответы [ 4 ]

2 голосов
/ 10 октября 2011

Просто используйте BBC для всех получателей:

Скрытая копия: получатели получают копию электронного письма, но их адрес электронной почты автоматически удаляется при доставке. Никто, кроме вас и скрытой копии получатель будет знать, что он получил копию, и его адрес электронной почты будет не подвергаться.

-> http://email.about.com/od/emailmanagementtips/qt/How_to_Send_an_Email_to_Undisclosed_Recipients.htm

1 голос
/ 10 октября 2011

С PHP.net вы обнаружите, что вам необходимо использовать функцию скрытой копии mail ().

Как zoy (для нескольких взглядов):

$headers .= 'Bcc: someone@example.com,someone2@example.com,someone3@example.com,someone4@example.com,' . "\r\n";

Счастливый Хаксин!

_wryteowl

1 голос
/ 10 октября 2011

Поместить фактическую отправку сообщений в цикл. Таким образом, вы будете отправлять электронную почту каждому получателю отдельно, а не всем сразу.

1 голос
/ 10 октября 2011

Используйте поля additional_headers для добавления адреса BCC*. См. руководство

со страницы руководства:

// Additional headers
$headers .= 'To: Mary <mary@example.com>, Kelly <kelly@example.com>' . "\r\n";
$headers .= 'From: Birthday Reminder <birthday@example.com>' . "\r\n";
$headers .= 'Cc: birthdayarchive@example.com' . "\r\n";
$headers .= 'Bcc: birthdaycheck@example.com' . "\r\n";

// Mail it
mail($to, $subject, $message, $headers);

электронная почта на день рождения скрыта.

* (слепая копия)

В вашем сценарии это будет выглядеть примерно так:

$headers = "MIME-Version: 1.0\r\n";
$headers .= "Content-Type: text/html; charset=ISO-8859-1\r\n";
$headers .= "From: $usermail\r\n";

////////////pay attention here
$headers .= "BCC: ".implode(",", $emails)."\r\n";
$to = "youremail@domain.com"; //the mail in the "TO", visible to all. there has to be 1.
////////////////////////

$subject = "$full_name added";
$message = "<html><body>";
$message .= "Hello, <br><br>$full_name posted someth<br><br>";
$message .= "<a href=www.domain.com/signup.php?t=&sign=>Click here.</a><br><br>";
$message .= "</body></html>";

mail($to, "Subject: $subject",
$message, "$headers" );
echo "";
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...