2016-02-18 9 views
0

У меня есть система рассылок, поэтому, когда я хочу отправить сообщение всем моим подписчикам, я отправляю ее через файл php с именем post-processing.php.Как создать ссылку для рассылки в электронной почте?

Вот мой post-processing.php код:

$count=$dbo->prepare("select * from sw_post where post_id=:post_id"); 
$count->bindParam(":post_id",$post_id,PDO::PARAM_INT,4); 

if($count->execute()){ 
    echo " Success <br>"; 
    $row = $count->fetch(PDO::FETCH_OBJ); 
    $sub=$row->sub; 
    $post=$row->post; 
} else { 
    echo "Database Error .."; 
print_r($count->errorInfo()); 

exit; 
} 
///////////////////////// 

$dtl=""; 

$dtl .=$post. "\n\n"; 


@$headers.="Reply-to: $from_email\n"; 
$headers .= "From: $from_email\n"; 
$headers .= "Errors-to: $from_email\n"; 
//$headers = "Content-Type: text/html; charset=iso-8859-1\n".$headers; 
// Above line is required to send HTML email 
$sql="select email_id, email from sw_email where status='A'"; 
$i=0; 

foreach ($dbo->query($sql) as $row) { 
    $url=$base_url."unsubscribe.php?email_id=$row[email_id]&email=$row[email]&todo=delete"; 
    $dtl .= "Click on the URL to unsubscribe $url "; 

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

Click on the URL to unsubscribe: http://#.com/unsubscribe.php?email_id=1&[email protected]&todo=delete 
Click on the URL to unsubscribe: http://#.com/unsubscribe.php?email_id=2&[email protected]&todo=delete 
Click on the URL to unsubscribe: http://#.com/unsubscribe.php?email_id=3&[email protected]&todo=delete 

Но результат я хочу только:

Click on the URL to unsubscribe: http://#.com/unsubscribe.php?email_id=1&[email protected]&todo=delete 

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

ответ

0

Bind вашего электронного кода внутри Еогеасп после получения пользователя списков

@$headers.="Reply-to: $from_email\n"; 
    $headers .= "From: $from_email\n"; 
    $headers .= "Errors-to: $from_email\n"; 
//$headers = "Content-Type: text/html; charset=iso-8859-1\n".$headers; 
$sql="select email_id, email from sw_email where status='A'"; 
foreach ($dbo->query($sql) as $row) { 
    $dtl =$post. "\n\n";  

    $url=$base_url."unsubscribe.php?email_id=$row[email_id]&email=$row[email]&todo=delete"; 
    $dtl .= "Click on the URL to unsubscribe $url "; 

    mail('to_email','subject',$dtl,$headers); //this is your mail function 
} 
+0

Я пробовал, но, к сожалению, я получаю тот же результат, что и раньше. –

+0

Является ли ваша функция почты внутри foreach и $ dtl = $ post. "\ П \ п"; без точки –

0

Что вам нужно сделать, это оставить свое тело сообщения нетронутого в переменном вне цикла абонентов. Затем один за другим вы читаете его адрес электронной почты, добавляете сообщение и ссылку на новую переменную. Вызовите функцию почты, используя только этот адрес электронной почты в качестве получателя и эту новую переменную как тело. Когда петли цикла будут создавать новый var с телом сообщения и новую ссылку на другого абонента.

Смежные вопросы