Scientist 2 Denunciar post Postado Agosto 26, 2012 Boa Tarde, estou enviando emails em formato HTML para todos os email do meu banco de dados (são aproximadamente 400) um por um com um laço for. Ex: foreach ($emails as $e) mail ($e,.... O problema é que todos os emails chegam no SPAN quando faço isso, porém quando envio apenas para 1 pessoa chega normal na caixa de entrada. Como resolver isso? Compartilhar este post Link para o post Compartilhar em outros sites
Gabriel Jacinto 74 Denunciar post Postado Agosto 26, 2012 Utilize SMTP autenticado em vez da função mail do PHP. A função mail geralmente utiliza o mesmo servidor web para disparar os e-mails, e esses geralmente estão em black lists. Usando uma classe de SMTP como a PHP Mailer você irá usar os servidores de e-mail e não o servidor web. Tutorial simples de como usar o PHPMailer: :seta: Clique aqui Compartilhar este post Link para o post Compartilhar em outros sites
Scientist 2 Denunciar post Postado Agosto 26, 2012 estou tentando usar o gmail pelo phpmailer mais da Erro de SMTP: Não foi possível conectar com o servidor SMTP.. Veja meu codigo $mail = new PHPMailer(); $mail->IsSMTP(); $mail->SMTPAuth = true; $mail->SMTPSecure = "ssl"; $mail->Host = "smtp.gmail.com"; $mail->Port = 465; $mail->Username = "xxxxxxxxxx@gmail.com"; $mail->Password = "xxxxxxxxxxxx"; $mail->SetLanguage('br', 'phpmailer/language/'); $mail->AddAddress("xxxxxxxxxxxx@gmail.com"); $mail->IsHTML(true); $mail->CharSet = 'utf-8'; //////////////////////////////////////////////// //DADOS DE ENVIO DO EMAIL $mail->Subject = $assunto; $mail->From = "xxxxxxxxxxxx@gmail.com"; $mail->FromName = "XXXXXXXXXXXX"; $mail->Body .= $msg; $enviado = $mail->Send(); if ($enviado) echo "enviado com sucesso <br />"; else "houve erros <br />"; Compartilhar este post Link para o post Compartilhar em outros sites
Gabriel Jacinto 74 Denunciar post Postado Agosto 26, 2012 Tente assim, limpando os destinatários e anexos ao enviar e, caso não envie, uma mensagem explicando o porque de não ter enviado: $mail = new PHPMailer(); $mail->IsSMTP(); $mail->SMTPAuth = true; $mail->SMTPSecure = "ssl"; $mail->Host = "smtp.gmail.com"; $mail->Port = 465; $mail->Username = "xxxxxxxxxx@gmail.com"; $mail->Password = "xxxxxxxxxxxx"; $mail->SetLanguage('br', 'phpmailer/language/'); $mail->AddAddress("xxxxxxxxxxxx@gmail.com"); $mail->IsHTML(true); $mail->CharSet = 'utf-8'; //////////////////////////////////////////////// //DADOS DE ENVIO DO EMAIL $mail->Subject = $assunto; $mail->From = "xxxxxxxxxxxx@gmail.com"; $mail->FromName = "XXXXXXXXXXXX"; $mail->Body .= $msg; $enviado = $mail->Send(); /* Limpar os campos de destino e anexos */ $mail->ClearAllRecipients(); $mail->ClearAttachments(); if ($enviado) echo "enviado com sucesso <br />"; else /* Exibindo os erros encontrados ao enviar */ "houve erros: ".$mail->ErrorInfo."\n"; Compartilhar este post Link para o post Compartilhar em outros sites
Scientist 2 Denunciar post Postado Agosto 26, 2012 mesmo erro. Compartilhar este post Link para o post Compartilhar em outros sites
Gabriel Jacinto 74 Denunciar post Postado Agosto 26, 2012 Poste o código todo ou a mensagem de erro Compartilhar este post Link para o post Compartilhar em outros sites
Scientist 2 Denunciar post Postado Agosto 26, 2012 O código é esse amigo, a unica coisa a mais que tem em cima é o require: require_once "phpmailer/class.phpmailer.php"; Compartilhar este post Link para o post Compartilhar em outros sites
Gabriel Jacinto 74 Denunciar post Postado Agosto 26, 2012 E a mensagem de erro é que não foi posssível conectar com o smtp? Isso? Compartilhar este post Link para o post Compartilhar em outros sites
Scientist 2 Denunciar post Postado Agosto 26, 2012 Correto amigo Compartilhar este post Link para o post Compartilhar em outros sites
Gabriel Jacinto 74 Denunciar post Postado Agosto 26, 2012 Adicione essa linha: $mail->SMTPAuth = true; Em baixo dessa (pra ficar mais organizado): $mail->Host = "smtp.gmail.com"; [Atualizado] Mude a configuração do SMTP pata isto: // Configuração de SMTP $email->Host = "ssl://smtp.googlemail.com"; $email->SMTPAuth = true; $email->SMTPDebug = true; $email->Port = 465; $email->Username = "email@gmail.com"; $email->Password = "*********"; Compartilhar este post Link para o post Compartilhar em outros sites
Scientist 2 Denunciar post Postado Agosto 26, 2012 fiz isso, o erro continua. Compartilhar este post Link para o post Compartilhar em outros sites
Gabriel Jacinto 74 Denunciar post Postado Agosto 26, 2012 Faça a mudança na configuração do SMTP, indicada na atualização do post anterior. Compartilhar este post Link para o post Compartilhar em outros sites
Scientist 2 Denunciar post Postado Agosto 26, 2012 perfeito funcionou amigo, agora assim. Eu estou usando o gmail como você deve estar percebendo, mas gostaria que o usuário recebesse o From de : suporte@meudominio.com.br e não do meu gmail Opa, resolvido, só mudei no $email->From. Compartilhar este post Link para o post Compartilhar em outros sites
Gabriel Jacinto 74 Denunciar post Postado Agosto 26, 2012 Só mudar o From: $mail->From = "email@seusite.com"; Compartilhar este post Link para o post Compartilhar em outros sites
Scientist 2 Denunciar post Postado Agosto 26, 2012 Deixa eu testar se agora não vai mais chegar no span e já retorno. 1 seg olha o erro que deu: Fatal error: Maximum execution time of 30 seconds exceeded in /home/xxxxx/public_html/admin/phpmailer/class.smtp.php on line 424 Compartilhar este post Link para o post Compartilhar em outros sites
Gabriel Jacinto 74 Denunciar post Postado Agosto 26, 2012 Na demora ao enviar, deu erro. Coloque esse código no código. Vai demorar do mesmo jeito, mas não vai haver limite de tempo: set_time_limit(0); Compartilhar este post Link para o post Compartilhar em outros sites
Scientist 2 Denunciar post Postado Agosto 26, 2012 ok. resolvido. Compartilhar este post Link para o post Compartilhar em outros sites