
Artigo 15 / 58
Enviar emails em massa de base de dados MySQL
mass email, php mail, sistema de newsletter, email php+mysql
5 dicas sobre o envio de Newsletters
Não envie newsletters não solicitadas
. Poderá estar a assinar a sentença de morte do seu site, pois muitos utilizadores reportam aquele email como spam , e assim esse utilizador nunca mais irá ler uma única newsletter.
Elabore uma newsletter curta, atractiva e com sentido
Muitos webmasters criam newsletter confusas e com muito texto. O objectivo da newsletter não é obrigar o utilizador a ler um compêndio , mas sim a de um hot spot , de forma a captar a atenção do leitor levando a que se interesse por aceder aos conteúdos alvos do seu site.
Tenha cuidado com os envios
Muitos utilizadores não gostam de ser chateados por um assunto muitas vezes seguidas. Uma newsletter do mesmo assunto deve ser enviada apenas uma única vez, e não deve enviá-la mais do que uma vez ao dia.
Atenção aos conteúdos
Evite linguagem complexa e muito profissional. Desta forma a probabilidade dos seus email terem maior nº de leitores aumenta, podendo assim angariar mais visitantes assíduos ao seu site. Seja coerente e profissional , mas não utilize uma escrita que requer ter ao lado o dicionário mais elaborado da Porto Editora.
Cuidado com os headers
O código seguinte é apenas um um pilar muito rasante daquilo que poderia ser um sistema de newsletter. No entanto este código peca pelo seguinte. Ao tentar enviar 20 ou 30 mensagens em simultâneo com a função mail() do PHP, ocorrerá um erro por timeout, e as suas mensagens não serão enviadas.
No entanto a Revista PHP , tem à disposição uma versão para envio de newsletters na qual esse problema não se coloca , podendo enviar uma série ilimitada de emails sem que ocorra o dito erro por timeout.
O código a seguir utiliza duas funções distintas, na construção do email; uma para criar a mensagem e outra para enviar o email propriamente dito. Repare que a construção dos headers deve ser o mais simples possível. Utilizando o servidor smtp do gmail, deve retirar o quebra linha " \r" , do cabeçalho , uma vez que a utilização deste provoca erro , evitando que algumas das mensagens cheguem ao destino.
A imagem seguinte atesta o funcionamento do código abaixo.Veja-se as mensagens recebidas na caixa do Gmail

<?php
require("conn.php");
/* Destinatário */
$to = "guto.onidesk@gmail.com" . ", " ; // Observe a vírgula
$to .= "guto.onidesk@";
/* assunto */
# ou por opção enviamos o assunto da base de dados
$subject = "Birthday Reminders para Março 2008";
/* mensagem */
function msg($nome){
$msg = '
<html>
<head>
<title>Revista PHP</title>
</head>
<body>
<p>EXEMPLO DE EMAIL COM HTML!</p>
<p><b>Hello '.$nome.' </b></p>
<br>
</body>
</html>
';
return $msg;
}
function sendEmail($to,$subject,$msg){
$headers = "MIME-Version: 1.0\n";
$headers .= "Content-type: text/html; charset=iso-8859-1\n";
/* headers adicionais */
$headers .= "To: ".$to." \n";
$headers .= "From: Revista PHP <noreply@revistaphp.com>\n";
mail($to, $subject, $msg, $headers);
}
$db= new Conn();
$conn = $db->__connect();
$rs = mysql_query("SELECT * FROM emails") or die(mysql_error());
$c = 0; // contador de emails (não confirma de forma exacta)
while($linha = mysql_fetch_array($rs)){
sendEmail($linha["email"],$linha["assunto"],msg($linha["nome"]));
$c++;
}
echo "Foram enviados ".$c." emails";
?>
Não existem comentários para este artigo 
Estão online 2 utilizadores !