Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

marcosalmeida

[Resolvido] Envio de Email com PHP Mailer

Recommended Posts

Olá, pessoal!

 

Sou novo em PHP e estou com dificuldade para resolver este problema no PHP Mailer.

Estou buscando o destinatário do formulário e gostaria de enviar para mais destinatários ao mesmo tempo, é possivel fazer isso pelo formulário ou existe uma forma de buscar os destinatários de uma base de dados MySQK ou txt?

 

O codigo abaixo esta funcionando, mas quando insiro mais de um destinatário separado por (;) dá o seguinte erro: SMTP Error: The following recipients failed:.

 

Alguem pode me ajudar? Só quero pegar o e-mail do destinatários.

 


<?php
require("phpMailer/class.phpmailer.php");
$mail = new PHPMailer();

$mail->IsSMTP(); // Define que a mensagem será SMTP
$mail->Host = "smtp.lestemais.com.br"; // Endereço do servidor SMTP
$mail->SMTPAuth = true; // Autenticação
$mail->Username = 'marcos@lestemais.com.br'; // Usuário do servidor SMTP
$mail->Password = 'teste'; // Senha da caixa postal utilizada

// Define o remetente
$mail->From = "marcos@lestemais.com.br"; 
$mail->FromName = "Marcos";  

// Define os destinatário(s) 
$emails = $_POST['emails']; //Vêm do formulário
$array = explode(";", $emails);
$mail->AddAddress($emails);

// Define os dados técnicos da Mensagem
$mail->IsHTML(true); 
$mail->Subject  = "Mensagem Teste"; 
$mail->Body = 'Este é o corpo da mensagem de teste, em HTML!';

$enviado = $mail->Send();

$mail->ClearAllRecipients();
$mail->ClearAttachments();

// Exibe uma mensagem de resultado
if ($enviado) {
echo "E-mail enviado com sucesso!";
} else {
echo "Não foi possível enviar o e-mail.
";
echo "Informações do erro: 
" . $mail->ErrorInfo;
}
?>

 

Tentei fazer um loop mas dá erro na primeira linha do codigo abaixo.

 

foreach($array as $emails) {
        $envio++;
        $Email->AddAddress($email);
        if($envio == 10) {
                sleep(20); //Aguarda x segundos
                $envio = 0;
        }

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tenta assim:

<?php
$_POST['emails'] = 'email1@site.com;email2@site.com;email3@site.com'; // vamos supor que você separe os emails por ponto e virgula.

$emails = explode(';',$_POST['emails']);

for($i=0;$i<count($emails);$i++)
{
  $mail->AddAddress($emails[$i]);
}
// ou
//$mail->AddCC('ciclano@site.net'); // Copia
//$mail->AddBCC('ciclano@site.net'); // Cópia Oculta
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigado pela ajuda. Funcionou beleza.

 

Se não for querer de mais, como seria pra pegar os contatos direto de uma base de dados?

Precioso enviar grandes quantidades de email (20.000) Será que o servidor suporta este volume?

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.