phpmailer – Следующая ошибка SMTP: данные не принимаются

Я пытаюсь выяснить эту проблему в течение 6 часов. Но ничего не имеет смысла. Вот сценарий; Существует хорошо отформатированный 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> abcdf@somedomain.com<br /> <b>Message :</b> Here is the message info<br /> '; 

Вот массив писем получателей;

 $recipients = array("abc@something.com","xyz@somtehing.com"); 

Все выглядит нормально, а электронная почта готова к отправке. Вот конфигурация phpmailer;

 $mail = new PHPMailer(); $mail->IsSMTP(); $mail->From = "noreply@something.com"; $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..."; } 

Все так же, когда я его тестирую. Но иногда отправлялось электронное письмо. Иногда его не отправляли. Дайте мне следующую ошибку: The following SMTP Error: Data not accepted.

Надеюсь, я объяснил

ваш сервер не разрешает другим отправителям и имени пользователя, которые вы должны настроить: $mail->From like $mail->Username

Для пользователей AWS, которые работают с SES Amazon совместно с PHPMailer, эта ошибка также появляется, когда ваш отправитель «from» не является проверенным отправителем.

Чтобы добавить проверенного отправителя:

1.) Войдите в свою консоль Amazon AWS: https://console.aws.amazon.com

2.) Выберите «Amazon SES» из списка доступных приложений AWS

3.) В разделе «Проверенные отправители» выберите «Адреса электронной почты» -> «Проверить новый адрес электронной почты»,

4.) Перейдите к электронной почте этого нового отправителя, нажмите ссылку подтверждения по электронной почте.

И все готово.

Над определённым сообщением размера, оно испортит контент при настройке через $ mail-> Body.

Вы можете проверить его, если он хорошо работает с небольшими сообщениями, но не работает с более крупными (более 4-6 кБ), то это проблема.

Кажется, проблема $ mail-> Body, поэтому вы можете обойти это, установив тело HTML вручную через $ mail-> MsgHTML ($ message). И тогда вы можете попытаться добавить тело non-html только $ mail-> AltBody.

Надеюсь, что я могу помочь, не стесняйтесь предоставлять более подробную информацию, информацию.

Попробуйте установить порт на 26, это устранило мою проблему с сообщением «данные не приняты».

установите phpmailer для работы в отладке, чтобы увидеть «реальную» ошибку за общим сообщением «Ошибка SMTP: данные не приняты», в нашем случае текст в сообщении запускал SMTP-фильтр smtp-сервера.

  $email->SMTPDebug = true; 

Интересно, что у меня была такая же точная проблема, и для меня проблема заключалась в том, что моя связь была отключена. Чтобы иметь возможность видеть более подробную информацию о моих подключениях, я добавил $ mail-> SMTPDebug = 4; на мой phpmailer (посмотрите, как захватить отладку, поскольку функция вывода по умолчанию – это эхо).

Вот результат:

 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: 

Таймаут по умолчанию устанавливается в 10 секунд. Если ваше приложение может поддерживать больше, добавьте эту строку в свой phpmailer:

 $mail->Timeout = 20; 

У меня возникла такая же проблема. В моем случае почта отправки была отключена, потому что мой сервер Exchange ретранслировал электронную почту на сервер в Интернете. Этот сервер превысил квоту пропускной способности. По-видимому, у php-mailer есть встроенный тайм-аут, и это было недостаточно долго, чтобы увидеть фактическое сообщение.

Мы отправляем электронную почту через SMTP-серверы Gmail, и мы иногда получаем эту точную ошибку от PHPMailer, когда попадаем в пределы отправки Gmail .

Вы можете проверить, происходит ли это с вами, перейдя в Gmail и пытаясь вручную отправить электронное письмо. В нашем случае это отображает более полезное сообщение об отправке ограничений.

https://support.google.com/a/answer/166852?hl=en