Dodo15 0 Denunciar post Postado Janeiro 27, 2011 Boa tarde desculpe encomodar novamente... Bom ja me ajudaram e eu consegui a enviar uma newsletter, mas agora eu estou tentando fazer com que ela envie para todos os usuarios do meu banco de dados.... Mas quando eu envio nem um e-mail recebe a newsletter... Alguem poderia me ajudar a resolver isso? <?php ini_set('display_errors', true); error_reporting(E_ALL); include ('class.phpmailer.php'); include ('conexao.php'); $emails = mysql_query("SELECT email FROM email") or die(mysql_error()); $contar_emails = mysql_num_rows($emails); while($res_email = mysql_fetch_array($emails)){ $email = $res_email[0]; //Campos de envio da mensagem! $post1 = $_POST['assunto']; $post2 = $_POST['mensagem']; $data = date('d/m/Y H:i'); $de = utf8_decode('Boccuto Cia - Promoções!'); //VARIAVEL PARA ENVIAR O EMAIL $para = utf8_decode("$email"); $assunto = utf8_decode($post1); $html = utf8_decode("$post2 <br /><br /><small>Enviado em: $data</small>"); //Configurações do PHP Mailer $PHPMailer = new PHPMailer(); $PHPMailer->IsSMTP = ('smtp'); $PHPMailer->Charset = 'UTF-8'; $PHPMailer->SMTPAuth = true; $PHPMailer->Port = 465; //Configurações do e-mail $PHPMailer->Host = "smtp.pva.terra.com.br"; // SMTP servers $PHPMailer->Sender = ('nome@terra.com.br'); $PHPMailer->Username = ('nome@terra.com.br'); // SMTP username $PHPMailer->Password = ('senha'); // SMTP password //Configurações de envio $PHPMailer->From = ('nome@terra.com.br'); $PHPMailer->FromName = $de; $PHPMailer->AddAddress ($para); $PHPMailer->Subject = ($assunto); $phpmail->IsHTML = (true); $texto = 'Olá você está recebendo nossas ofertas por e-mail! Obrigado.'; $PHPMailer->Body = $html; $PHPMailer->AltBody = $texto; if ( $PHPMailer->Send() ){ echo "Enviado com sucesso, para: ". $para ."<br />" . $PHPMailer->ErrorInfo; }else{ echo "Erro ao enviar, para: ". $para ."<br />" . $PHPMailer->ErrorInfo; } } ?> Alguem sabe como? Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Janeiro 28, 2011 o AddAddress e o Send devem estar dentro de um loop, que percorre o resultado da consulta ao BD. Lembre-se de limpar os destinatário depois de cada envio, com ClearAllRecipients() Compartilhar este post Link para o post Compartilhar em outros sites
Dodo15 0 Denunciar post Postado Janeiro 28, 2011 todos eles estao dentro do wile e nao da certo... Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Janeiro 28, 2011 mostre como está fazendo e explique o que é "não dar certo". aparece erro? Arrume isto: <?php <?php há tag sobrando Compartilhar este post Link para o post Compartilhar em outros sites
Dodo15 0 Denunciar post Postado Janeiro 28, 2011 É que nao aparece nem um erro na tela, ele nao informa nada... apenas nao envia o e-mail para ninguem... se na $para eu escrevo um e-mail direto (ex: $para = ('nome@gmail.com') )ele envia o email, mas conectando ao banco de dados ele nao envia... Para enviar e-mail eu estou usando esse codigo: $emails = mysql_query("SELECT email FROM email") or die(mysql_error()); $contar_emails = mysql_num_rows($emails); while($res_email = mysql_fetch_array($emails)){ $email = $res_email[0]; aki vem o phpmailer.. Esse while é para fazer o phpmailer enviar para todos do banco de dados Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Janeiro 28, 2011 além da tag <?php sobrando, não estou vendo o fechamento do while corrija esses dois pontos dê echo nas variáveis dentro do loop. veja se estão aparecendo corretamente Compartilhar este post Link para o post Compartilhar em outros sites
Dodo15 0 Denunciar post Postado Janeiro 28, 2011 Ja fechei, e deu o mesmo erro... Mas como eu dou echo nas variaveis do loop e em todas variaveis? pq ja estou dando echo la no final, do loop para os email q foi enviado... Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Janeiro 28, 2011 normal, como qualquer outro echo: echo $var; Compartilhar este post Link para o post Compartilhar em outros sites
Dodo15 0 Denunciar post Postado Janeiro 28, 2011 Variavel email: Resource id #5 Variavel Contar emails: 2 Variavel email: matheusdonangelo@hotmail.com Enviado com sucesso, para: matheusdonangelo@hotmail.com Variavel email: mldonangelo@gmail.com Enviado com sucesso, para: mldonangelo@gmail.com Eu coloqei um echo nas variaveis: email, emails, contar_email e apareceu isso... Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Janeiro 28, 2011 e...? está tudo certo, não está? apareceu que foi enviado. chegou o email (pode demorar)? Compartilhar este post Link para o post Compartilhar em outros sites
Dodo15 0 Denunciar post Postado Janeiro 28, 2011 Des das 7h da manha nao recebi o email Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Janeiro 28, 2011 o código está certo e o Send retornou true. o problema deve ser o SMTP que está usando Compartilhar este post Link para o post Compartilhar em outros sites
Dodo15 0 Denunciar post Postado Janeiro 28, 2011 Mas quando eu enviei o e-mail sem usar bando de dados funcionou... Estranho ser problema com smtp Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Janeiro 28, 2011 os servidores normalmente limitam o número de emails enviados por intervalo de tempo, para evitar spam pode ser isso. Compartilhar este post Link para o post Compartilhar em outros sites
Dodo15 0 Denunciar post Postado Janeiro 28, 2011 Mesmo com 1 email no banco de dados ele nao recebe Nao tem ninguem qe tenha feito algo parecido e possa mandar o codigo ou dar uma ajudinha aki? Compartilhar este post Link para o post Compartilhar em outros sites
cassiano óliver 1 Denunciar post Postado Janeiro 30, 2011 tente enviar sem os dados do terra, tente de outro provedor... Tente com autenticação do Gmail por exemplo... Compartilhar este post Link para o post Compartilhar em outros sites
Dodo15 0 Denunciar post Postado Janeiro 30, 2011 Será? pq quando era só 1 email sem bando de dados ele enviava normalmente Compartilhar este post Link para o post Compartilhar em outros sites
cassiano óliver 1 Denunciar post Postado Janeiro 30, 2011 Faça também como o Beraldo sugeriu, verifique com sua hospedagem a política de envio de e-mail. Talves esteja enviando mais do que o possível por x período de tempo. Compartilhar este post Link para o post Compartilhar em outros sites
Dodo15 0 Denunciar post Postado Janeiro 31, 2011 Ja fiz o teste, dechei so 1 usuario no banco de dados, e mesmo assim ele nao enviou o e-mail =/ Compartilhar este post Link para o post Compartilhar em outros sites
btcv 0 Denunciar post Postado Fevereiro 1, 2011 já tive assim um problema e resolvi assim $cont = 0; $listmsg = "SELECT * FROM `teste`"; $result=mysql_query($listmsg); while ($rows=mysql_fetch_row($result)) { $paraemail = $rows[1]; $mail->AddAddress($paraemail); $mail->Send(); $mail->ClearAddresses(); $cont = $cont + 1; echo $paraemail; if ($cont == 50) { flush(); sleep (500); $cont = 0; } } Compartilhar este post Link para o post Compartilhar em outros sites