SMTP-транспорт Swiftmailer отклоняет локальный IP-адрес
-
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 — он действительно должен генерировать исключение для чего-то подобного, а не просто перечислять каждого получателя как «неудавшегося».