У меня есть ежедневный информационный бюллетень, который я отправляю в список людей каждый день. Я использую PHP и объект PHPMailer для отправки писем.Ошибка SMTP-ошибки - PHPMailer
Это работает нормально до сегодняшнего дня, когда я не получил письмо (тест), и я проверил журналы, чтобы обнаружить, что периодически я получаю ошибки SMTP назад от
mail->Send();
Метод класса о НЕКОТОРЫХ из людей - не все из них.
Все электронные письма были точно такого же размера (длина в символах), кроме их имени и адреса электронной почты.
Подробности об ошибках от
$mail->ErrorInfo;
Включенные эти две ошибки
SMTP Ошибка: данные не принимаются. <p> Ошибка сервера SMTP: 2.1.5 ОК
Ошибка SMTP: данные не принимаются. < р & gtSMTP ошибка сервера: </р >
Почему ломаются P теги в сообщении об ошибке, я понятия не имею, - и почему первая ошибка имеет OK в нем ??
Однако у других людей в цикле электронные письма прошли отлично.
Также, когда я поместил скрипт в тестовый режим, ТОЛЬКО эти сбои были отправлены по электронной почте (так что один вызов сценария = одно письмо одному человеку), я не нашел проблем, и люди получили их emaail.
Теперь я спросил техническую поддержку, что означала ошибка и вернулась «Google it», и я не могу найти ошибку 2.1.5 ОК в любом месте. Я действительно не понимаю, почему он говорит «ОК» после ошибки.
В качестве теста на завтра я проверил тест на неудачную передачу, а затем спал в течение 5 секунд с повторением.
Я не знаю, поможет ли это, но я подумал, что, возможно, мой SMTP-сервер, который находится на том же сервере, что и мой скрипт (Rackspace VPS Linux), сталкивался с временными проблемами, поэтому спать может быть удобно в этой ситуации.
Это первый случай, когда у меня была эта проблема, я не перезагрузил APACHE или мой сервер (или почтовый сервер), и перед этим скриптом у меня был другой, отправляющий 403 письма без каких-либо проблем.
Было бы неплохо узнать, что такое ошибка и почему это произошло.
Роб
Так что спать между повторами сообщений поможет, если ошибка на самом деле не является ошибкой. На странице кодов ответов, которые я смотрел, не было видно 2.1.5, поэтому я не видел никаких упоминаний об этом. IF 2 означает «Адрес назначения действителен», то что означают .1 и .5? Есть все равно, чтобы узнать. Может быть, это был случай болотного почтового сервера? И в таком случае будет больше тайм-аутов между каждой отправкой электронной почты и повторной попыткой? – MonkeyMagix
То, что он начинается с символа «2», означает, что это код успеха (см. Раздел 2). «.1» после этого означает, что это статус адреса (также раздел 2), весь шаблон '* .1.5' указан в разделе 3.2. Не все сочетания префикса и статуса имеют смысл - например, 5.1.7 имеет смысл для отказа от спам-фильтра, но нет никакого смысла в 2.1.7 для принятия спам-фильтра! – Synchro
Вы можете попробовать установить '$ mail-> SingleTo = true;' и он будет отправлять каждое сообщение отдельно (если вы установите несколько адресов 'to'), что может дать вам более точную обратную связь. Вы также можете попробовать включить/отключить 'SMTPKeepAlive'. Если вы не отправляете большие объемы (тысячи), добавление задержек, вероятно, не поможет. – Synchro