Как создать ссылку для отмены подписки в электронной почте?

У меня есть система рассылки новостей, поэтому, когда я хочу отправить сообщение всем своим подписчикам, я отправляю его через 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

Решение

Свяжите свой код электронной почты внутри foreach после получения списков пользователей

  @$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

Другие решения

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

0

По вопросам рекламы [email protected]