@stascer
web-программист

Почему при отправке почты через smtp google через swiftmailer возникает ошибка HELO/EHLO argument invalid?

Столкнулся с довольно загадочной ситуацией. У нас есть проект, версии которого зависят от года. Например: 2016.example.ru, 2015.example.ru и тд. Каждая версия лежит в своей папке с номером года. В nginx прописана секция обрабатывающая запрос:
server {
listen 80;
server_name "~^(?\d{4})\.example\.ru$";

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

Роутинг проекта работает как нужно. НО при отправки почты через компонент symfony swiftmailer, настроенный на smtp гугла, происходит непонятная ошибка:

Не удалось отправить уведомление a@example.ru Expected response code 250 but got code "", with message "" Log data: ++ Starting Swift_Transport_EsmtpTransport << 220 smtp.gmail.com ESMTP z78sm1692032lfd.2 - gsmtp >> EHLO ~^(?\d{4})\.example\.ru$ << 501-5.5.4 HELO/EHLO argument "~^(?\d{4})\.example\.ru$" invalid, closing 501-5.5.4 connection. 501 5.5.4 https://support.google.com/mail/?p=helo z78sm1692032lfd.2 - gsmtp !! Expected response code 250 but got code "501", with message "501-5.5.4 HELO/EHLO argument "~^(?\d{4})\.example\.ru$" invalid, closing 501-5.5.4 connection. 501 5.5.4 https://support.google.com/mail/?p=helo z78sm1692032lfd.2 - gsmtp " (code: 501) >> HELO ~^(?\d{4})\.example\.ru$ << !! Expected response code 250 but got code "", with message "" (code: 0)

Судя по всему, при ответе гуглу наш сервер отдает значение хоста из конфига nginx: "~^(?\d{4})\.example\.ru$"

Отправка почты не работает на рабочем сервере, на локальных все тип-топ. Телнетом тоже тестили, все норм.

Подскажите, пожалуйста, где искать проблему или кто-то с таким уже сталкивался? Как появляется значение регулярки в ответе сервака ?
  • Вопрос задан
  • 1224 просмотра
Решения вопроса 1
@stascer Автор вопроса
web-программист
Решили проблему. Суть в том, что nginx подставляет эту регулярку в значение серверной переменной SERVER_NAME, которая в свою очередь передается в php.

https://github.com/swiftmailer/swiftmailer/issues/453

Решение такое: fastcgi_param SERVER_NAME $year.example.ru;
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
SergeySL
@SergeySL
Системный администратор
Кавычки в server_name точно нужны?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы