Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá pessoal, adaptei um script de newsletter que agora não recordo se é daqio ou de outro fórum para trabalhar com a classe phpmailer
O script envia a newsletter, tanto texto puro, como html corretamente
O problema é que alé de enviar a mensagem correta tb envia mais três sem assunto e sem mensagem
To quebrando a cabeça mas não consigo descobrir o erro
Qualquer ajuda será bem vinda
Desde já agradecido
Segue o código
<?php
// inclui a classe phpmailer
ini_set('include_path','../../includes/php/phpmailer/');
@include ("class.phpmailer.php");
// consulta a tabela dos usuários, verificanco quem aceita newsletter e tem e-mail cadastrado, usuários sem e-mail o valor padrão é "a"
$consultas = @mysql_query("SELECT usu_id, usu_nome, usu_email, usu_newsletter FROM usuarios WHERE usu_newsletter = 'S' AND usu_email != 'a'"); $consultaum = @mysql_num_rows(@mysql_query("SELECT new_nome, new_email FROM newsletter WHERE new_nome = '".$consulta[1]."' AND new_email = '".$consulta[2]."'"));
if ($consultaum == "0") {
// se o usuário não estiver cadastrado, cadastra setando e status do e-mail para 0
$consultadois = @mysql_query("INSERT INTO newsletter (new_nome, new_email, new_status) VALUES ('".$consulta[1]."', '".$consulta[2]."', '0')");
}
}
$assunto = htmlspecialchars(evita_injection($_POST["assunto"]));
$mensagem =$_POST["mensagem"];
$nome_remetente = "Remetente";
$email_remetente= "meuemail@meudominio.com.br";
$quantidade = "10";
$intervalo = "10";
$ok = "0";
$inicio = "0";
$fim = $inicio + $quantidade;$sql = "SELECT new_id, new_nome, new_email, new_status FROM newsletter WHERE new_status = '0' LIMIT $inicio, $fim";
$query = @mysql_query($sql, $conexao) or die (@mysql_error());
$registros = @mysql_num_rows($query);
if ($registros == "0") {
// se todas as news foram enviadas
$consulta = @mysql_query("UPDATE newsletter SET new_status = '0'");
echo "<h2>Newsletter Enviada! Redirecionando ...</h2>";
echo "<p>A newsletter foi enviada para todos os usuários cadastrados<br />Redirecionando para a página de envio de newsletter<br />";
echo "<img src=\"../../img/redirecionando.gif\" alt=\"Redirecionando\" />";
echo "<head>";
echo "<meta http-equiv=\"refresh\" content=\"03;url=index.php?menu=gerenciar&submenu=enviarnewsletter\" />";
echo "</head>";
$ok = "1";
} $id = $result[0];
$nome = $result[1];
$email = $result[2];
$status = $result[3];
$mail = new PHPMailer();
$mail->IsSMTP;
$mail->Host="email.dominio.com.br";
$mail->SMTPAuth = true;
$mail->Username="email@dominio.com.br";
$mail->Password="minhasenha";
$mail->From = $email_remetente;
$mail->FromName = utf8_decode("Nome da Empresa");
$mail->AddAddress("$email");
$mail->Subject = $assunto;
$mail->IsHTML(true);
$mail->Body = "E-mail enviado por $nome_remetente<br>";
$mail->Body .= "Assunto da Mensagem: $assunto<br>";
$mail->Body .= "$mensagem<br>";
if (!$mail->Send()) {
echo "<p>A mensagem não foi enviada</p>";
echo "Erro: " . $mail->ErrorInfo;
}
else {
$consulta = @mysql_query("UPDATE newsletter SET new_status = '1' WHERE new_id = '".$id."'");
$titulo ="Grupo de Newsletters Enviadas Com Sucesso! Verificando Se Há Pendentes ...";
$texto = "Grupo de 10 newsletter enviado com sucesso:<br>";
$texto .= "Verificando em 10 segundos se ainda existem newsletters pendentes";
}
}
@mysql_free_result($query);
@mysql_close($conexao);
if (!$ok) {
echo "<head>";
echo "<meta http-equiv=\"refresh\" content=\"$intervalo\" />";
echo "</head>";
} echo "<h2>$titulo</h2>";
echo "<p>$texto</p>";
}
?>Carregando comentários...