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

Problema - Newsletter


Adore

Pergunta

Boas malta
Preciso de ajuda
Estou a criar um site para uma loja online, e pretendo enviar uma newsletter a cada cliente, sem que seja necessário colocar manualmente o endereço de e-mail de cada cliente. O objectivo será fazer com que o sistema vá buscar o mail automaticamente à BD já existente. O problema aqui, é que no código criado, só está a enviar o mail/newsletter para o último cliente, o último registo da BD! Alguém me consegue ajudar?

 

<?php

require('phpmailer/PHPMailerAutoload.php'); // Ligação com a base de dados MySQL 
define('BD_USER', 'root');
define('BD_PASS', '');
define('BD_NAME', 'nome_da_bd');
mysql_connect('127.0.0.1', BD_USER, BD_PASS);
mysql_select_db(BD_NAME); // Define busca a ser realizada no MySQL
$query= 'SELECT username, nome, email FROM utilizadores;';
$resultado = mysql_query($query);
while ($linha = mysql_fetch_array($resultado, MYSQL_BOTH)) { // Seleciona os campos, para cada linha 
    $nome=$linha['nome'];
    $username=$linha['username'];
    $email=$linha['email']; // Variáveis com assunto e mensagem
    $subject = "\"Newsletter\"";
    $mensagem = " Caro(a) $nome, aqui está a habitual newsletter, Atenciosamente, Garden Corporation Online"; // Inicia a classe PHPMailer
    $mail=new PHPMailer(); // Define os dados do servidor e tipo de ligação
}

$mail->SMTPAuth=true; // utilizar autenticação SMTP no caso de utilizar o GMAIL
$mail->Port=465;
$mail->SMTPSecure = "ssl";
$mail->Host='smtp.gmail.com';
$mail->Username='remetente'; // nome de utilizador
$mail->Password='password'; // password de acesso ao mail
// Define o remetente
$mail->SetFrom('remetente@gmail.com','Teste');
// Define os destinatário(s)
$mail->AddAddress($email,$nome.' '.$username);
$mail->Subject=$subject;
$mail->Body=$mensagem;
$imprime=$nome." ".$email."
";
// Apresenta o resultado do pedido
echo $imprime;
if($mail->Send()){// Envia o e-mail
echo 'E-mail enviado com sucesso!';
}else{
echo 'Erro ao enviar e-mail: '.$mail->ErrorInfo;
}
sleep(10);
?>

 Cump. e obrigado

Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0

Se queres enviar uma mensagem a cada utilizador tens de colocar toda a lógica de envio do e-mail dentro do ciclo while. Como está ele só envia para o último porque estás a substituir as variáveis com os detalhes de destinatário e mensagem bem como o objecto $mail. Experimenta assim:

<?php
while ($linha = mysql_fetch_array($resultado, MYSQL_BOTH)) { // Seleciona os campos, para cada linha 
    $nome=$linha['nome'];
    $username=$linha['username'];
    $email=$linha['email']; // Variáveis com assunto e mensagem
    $subject = "\"Newsletter\"";
    $mensagem = " Caro(a) $nome, aqui está a habitual newsletter, Atenciosamente, Garden Corporation Online"; // Inicia a classe PHPMailer
    $mail=new PHPMailer(); // Define os dados do servidor e tipo de ligação
    $mail->SMTPAuth=true; // utilizar autenticação SMTP no caso de utilizar o GMAIL
    $mail->Port=465;
    $mail->SMTPSecure = "ssl";
    $mail->Host='smtp.gmail.com';
    $mail->Username='remetente'; // nome de utilizador
    $mail->Password='password'; // password de acesso ao mail
    // Define o remetente
    $mail->SetFrom('remetente@gmail.com','Teste');
    // Define os destinatário(s)
    $mail->AddAddress($email,$nome.' '.$username);
    $mail->Subject=$subject;
    $mail->Body=$mensagem;
    $imprime=$nome." ".$email."";
    // Apresenta o resultado do pedido
    if ($mail->Send()) {// Envia o e-mail
      echo "E-mail enviado com sucesso! ($imprime)"; //mostrar uma mensagem por cada e-mail enviado.
    } 
    else {
      echo 'Erro ao enviar e-mail: '.$mail->ErrorInfo;
    }
} //endwhile

 

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
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...