Forum Pplware
PHP - Problema - Newsletter - Versão de Impressão

+- Forum Pplware (http://forum.pplware.com)
+-- Fórum: Mais Tech (/forumdisplay.php?fid=11)
+--- Fórum: Programação e Web (/forumdisplay.php?fid=16)
+--- Tópico: PHP - Problema - Newsletter (/showthread.php?tid=21981)



PHP - Problema - Newsletter - Adore - 24-01-2016 18:35

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?

Código:
<?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);
?>

Obrigado


RE: PHP - Problema - Newsletter - eSkiSo - 25-01-2016 20:14

É porque apartir de $mail->SMTPAuth=true; o codigo está fora do "while" ou seja assim que o while acaba tens apenas definido o ultimo registro.
Move a chaveta depois de $mail=new PHPMailer(); para depois de sleep(10);


RE: PHP - Problema - Newsletter - Adore - 25-01-2016 20:42

Obrigado pela ajuda, mas acabei por conseguir! Estava a fechar o ciclo demasiado cedo!

Abraço e obrigado


RE: PHP - Problema - Newsletter - zilog - 09-02-2016 02:16

Boas.

Como fizeste a parte de editar/criar a newsletter?

Ou seja, tens uma input_box onde escrever o email a enviar? Dá para inserir imagens, etc? Era isso que eu precisava.


RE: PHP - Problema - Newsletter - __root - 17-02-2016 16:44

Isso com algumas centenas de emails vai trazer-te problemas sérios de bloqueio de IP.

Estuda sobre o envio de emails em massa.