SMTP-транспорт Swiftmailer отклоняет локальный IP-адрес

StackOverflow https://stackoverflow.com/questions/4362417

  •  09-10-2019
  •  | 
  •  

Вопрос

Я пытаюсь отправить электронное письмо с помощью Swift_SmtpTransport, но получаю следующую ошибку:

501 5.5.2 <[::1]>:Команда Helo отклонена:неверный IP-адрес

SMTP-сервер — это удаленный сервер, и он работает с моего рабочего сервера, а не с моей машины разработки, на которой работает OS X.

Он также не удосужился выдать исключение, вместо этого мне потребовалось использовать плагин регистратора, чтобы выяснить, почему он не работает.

Что я могу сделать, чтобы он использовал реальный IP-адрес?

Это было полезно?

Решение

Я немного покопался в коде и нашел его.

При настройке транспорта SMTP вам необходимо вызвать setLocalDomain().При использовании PHP в OS X по умолчанию используется значение «::1», которое отклоняется удаленным сервером.Я только что добавил строку в свою конфигурацию разработки, чтобы установить это:

$transport = Swift_SmtpTransport::newInstance('mail.pantsburger.com', 587);
if (SITE_ENV == SITE_ENV_DEV) {
    $transport->setLocalDomain('[127.0.0.1]');
}

Я думаю, что это также ошибка Swiftmailer — он действительно должен генерировать исключение для чего-то подобного, а не просто перечислять каждого получателя как «неудавшегося».

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top