Estou querendo implementar um sistema de descadastramento, onde no próprio newsletter, no rodapé, aparece um link com o email para que a pessoa clique e faça o descadastramento.
O problema é que coloquei essa linha dentro do loop, antes da função mail() para usar a variável $to.
Só que a partir do 2º email cadastrado, ele repete a linha com o email anterior, ou seja, o 10º email enviado, tem 10 linhas iguais exibindo: "Se você quiser se descadastrar, por favor, clique aqui", cada uma com um email diferente.
Alguma sugestão de como implementar isso nesse código?
Pergunta
natbe
Pessoal,
Estou criando uma newsletter e estou usando o seguinte script:
<?php
//configurações do banco
$host = "HOST";
$banco = "BANCO";
$usuario = "USUARIO";
$senha = "SENHA";
$tabela = "news";
$campos = "id,destinatario,status"; //campos da tabela
//configurações do e-mail
$subject = "teste newsletter em pacotes";
$body = "testando um script de envio de newsletter em pacotes usando php e mysql";
$nome_remetente = "Seu Nome";
$email_remetente = "seu@email.com";
$quant = 10; //número de mensagens enviadas de cada vez
$sec = 10; //tempo entre o envio de um pacote e outro (em segundos)
?>
<?php
$conexao = mysql_connect($host,$usuario,$senha);
mysql_select_db($banco);
?>
<?php
$ok = 0;
$inicio = 0;
$fim = $inicio + $quant;
?>
<?php
$sql = "select $campos from $tabela where status = 0 limit $inicio,$fim";
$query = mysql_query($sql,$conexao);
$registros = mysql_num_rows($query);
?>
<?php
if($registros==0) {
mysql_query("update $tabela set status = 0");
printf("<font face=’tahoma’>todas as mensagens foram enviadas!</font>");
$ok = 1;
}
?>
<?php
while($result = mysql_fetch_array($query)) {
$id = $result[0];
$to = $result[1];
$status = $result[2];
$headers = "From: $nome_remetente <$email_remetente>";
mail($to,$subject,$body,$headers);
mysql_query("update $tabela set status = 1 where id = $id");
printf("<font face=’tahoma’>$id ) mensagem para <b>$to</b> <font color=’#ff0000’><b>enviada com sucesso!</b></font></font>");
}
?>
<?php
mysql_free_result($query);
mysql_close($conexao);
?>
<?php
if(!$ok){
echo("<meta http-equiv=\"refresh\" content=\"" . $sec . "\">");
}
?>
Estou querendo implementar um sistema de descadastramento, onde no próprio newsletter, no rodapé, aparece um link com o email para que a pessoa clique e faça o descadastramento.
O código é esse:
$body .="<br><br><font color='#333333'>Se você quiser se descadastrar, por favor, <a href='http://www.meudominio.br/descadastrar_news.php?email=$to'>clique aqui</a></font>";
O problema é que coloquei essa linha dentro do loop, antes da função mail() para usar a variável $to.
Só que a partir do 2º email cadastrado, ele repete a linha com o email anterior, ou seja, o 10º email enviado, tem 10 linhas iguais exibindo: "Se você quiser se descadastrar, por favor, clique aqui", cada uma com um email diferente.
Alguma sugestão de como implementar isso nesse código?
Grata!
Nat
Link para o comentário
Compartilhar em outros sites
4 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.