Laravel по-русски

Русское сообщество разработки на PHP-фреймворке Laravel.

Ты не вошёл. Вход тут.

#1 24.11.2017 00:04:16

Ошибка отправки email с поддомена

Здравствуйте, товарищи!

Может кто сталкивался с проблемой:
- письма отправляются без проблем с самого site.com
- не отправляются с sub.site.com

Получаю ошибку Expected response code 250 but got code в AbstractSmtpTransport.php

Не в сети

#2 26.11.2017 10:47:15

Re: Ошибка отправки email с поддомена

Проблему решил.
Вдруг кому поможет в будущем.

Т.к. емэйлы отправляются с помощью swiftmailer,
то заходим в файл vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/AbstractSmtpTransport.php
и смотрим с 462 строки private function _lookupHostname() {}

Все дело в переменной $_SERVER['SERVER_NAME']

На основном домене она выглядит как domain.com
А на поддоменах ~^(.*)domain.com$ т.к. поддмены у нас динамические и в nginx прописано server_name ~^(.*)domain.com$;

Судя по всему swiftmailer сошел с ума от регулярки и не мог отправить письмо, т.к. не понимал какой хост...

В итоге пришлось жестко прописать в $_SERVER['SERVER_NAME'] домен и все заработало

Не в сети

#3 27.11.2017 14:09:44

Re: Ошибка отправки email с поддомена

судя по всему, это костыль.
автоматически вычисленный обратный адрес не соответствует реально существующему и поэтому зарубается почтовой системой. надо просто явно указывать From и Reply-To, а не суперглобальные переменные портить big_smile


There are two hard things in computer science: cache invalidation, naming things, and off-by-one errors.

Не в сети

#4 02.12.2017 21:38:58

Re: Ошибка отправки email с поддомена

Да, действительно, не были указаны  From и Reply-To, но их добавление толку не дало.
Пришлось оставить костыль с испорченной суперглобальной переменной sad

Не в сети

#5 03.12.2017 16:04:45

Re: Ошибка отправки email с поддомена

Это ужасно big_smile


There are two hard things in computer science: cache invalidation, naming things, and off-by-one errors.

Не в сети

Подвал раздела