phpmailer - o seguinte erro SMTP: dados não aceites
HTML
.
$mail_body = '
<b>Message Num :</b> 769<br />
<b>Message Date :</b> 2013-04-08 09:03:21<br />
<b>Name :</b> John Doe<br />
<b>Phone :</b> 123456789<br />
<b>E-mail :</b> [email protected]<br />
<b>Message :</b> Here is the message info<br />
';
aqui está a lista de E-mails dos destinatários;
$recipients = array("[email protected]","[email protected]");
Tudo parece bem e está pronto para enviar um e-mail.Aqui está a configuração do phpmailer;
$mail = new PHPMailer();
$mail->IsSMTP();
$mail->From = "[email protected]";
$mail->FromName = "TEST";
$mail->WordWrap = 50;
foreach($recipients as $mail_add) {
$mail->AddAddress($mail_add);
}
$mail->IsHTML(true);
$mail->Subject = "TEST Subject";
$mail->Body = $mail_body;
if(!$mail->Send()) {
echo $mail->ErrorInfo;
} else {
echo "Mail sent...";
}
Tudo é igual quando o Testo. Mas às vezes o e-mail era enviado. Às vezes não era enviado. Dê-me o seguinte erro : The following SMTP Error: Data not accepted.
Espero ter explicado.
9 answers
O seu servidor não permite um remetente e um utilizador diferentes
você deve config: $mail->From
como $mail->Username
Para os utilizadores do AWS que trabalham com o Amazon SES em conjunto com o PHPMailer, este erro também aparece quando o remetente de "from" não é um remetente verificado.
Para adicionar um remetente verificado:
1.) Entre na sua consola Amazon AWS: https://console.aws.amazon.com
2.) Seleccione "Amazon SES" da sua lista de aplicações AWS disponíveis
3.) Seleccione, em "remetentes verificados", os "endereços de E-Mail" -- > "verificar um novo endereço de E-mail"
4.) Navegar o e-mail do novo remetente, clique no link do E-mail de confirmação.
E está tudo pronto.SMTP -> get_lines(): $data was ""
SMTP -> get_lines(): $str is ""
SMTP -> get_lines(): $data is ""
SMTP -> get_lines(): timed-out (10 seconds)
SMTP -> FROM SERVER:
SMTP -> ERROR: DATA not accepted from server:
O tempo-limite por omissão é de 10 segundos. Se a sua aplicação conseguir suportar mais, adicione esta linha ao seu phpmailer:
$mail->Timeout = 20;
Sobre uma determinada mensagem de tamanho, ele confunde o conteúdo ao configurar através de $mail - > Body.
Você pode testá-lo, se ele funciona bem com mensagens pequenas, mas não funciona com maior (mais de 4-6 kB), então este é o problema.
Parece ser o problema do '$ mail->Body', para que possa contornar isto, definindo manualmente o corpo HTML através de $mail - >MsgHTML ($message). E então você pode tentar apenas adicionar o corpo não-html por $mail- > AltBody.
Espero poder ajudar, sentir-me livre. para fornecer mais detalhes, informações.Configure o phpmailer para funcionar na depuração para ver o erro "real" por detrás da mensagem genérica 'erro SMTP: dados não aceites' no nosso caso o texto na mensagem estava a activar o filtro de spam do servidor de smtp.
$email->SMTPDebug = true;
Tente definir a porta em 26, isto resolveu o meu problema com a mensagem "dados não aceitos".
Enviamos e-mail através dos servidores SMTP do Gmail, e obtemos este erro exacto do PHPMailer, por vezes quando atingimos os nossos limites de envio do Gmail.
Você pode verificar se é a mesma coisa que está acontecendo com você indo para o Gmail e tentando enviar manualmente um e-mail. No nosso caso que mostra a mensagem de erro mais útil sobre o envio de limites.
Eu estava a usar apenas
$mail->Body = $message;
E para algumas formas summitadas o PHP estava a devolver o erro:
Erro de SMTP: dados não aceites.Erro do servidor de SMTP: o comando de fim de dados falhou o detalhe: esta mensagem foi classificada como lixo e não pode ser entregue Código SMTP: 550
Arranjei-o adicionando este código depois de $mail - > Body=$message:
$mail->MsgHTML = $message;
$mail->AltBody = $message;