Ir para conteúdo
Fórum Script Brasil
  • 0

(Resolvido) newsletter


natbe

Pergunta

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

  • 0

O problema é que queria passar o email de quem recebe através de um link para um script posteriormente recuperar e descadastrar do bd.

Se coloco isso dentro do while, a frase tb entra em loop, sendo impressa várias vezes...

Alguém teria alguma ideia para ajudar?

Grata!

Link para o comentário
Compartilhar em outros sites

  • 0

Troca:

<?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>");
}
?>
Por:
<?php
while($result = mysql_fetch_array($query)) {
$id = $result[0];
$to = $result[1];
$status = $result[2];

$headers = "From: $nome_remetente <$email_remetente>";

$descadastra ="<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>";

mail($to,$subject,$body.$descadastra,$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>");
}
?>

Link para o comentário
Compartilhar em outros sites

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.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152k
    • Posts
      651,7k
×
×
  • Criar Novo...