Сведения о вопросе

PASHA

13:13, 23rd August, 2020

Отправка писем через exim4 на домен, равный hostname, если mx запись указывает на другой хост

Просмотров: 518   Ответов: 5

Есть сайт на VDS, на него указывает домен example.ru


$ hostname

example.ru

$ host example.ru

example.ru has address 92.243.84.xx

example.ru mail is handled by 10 mx1.example.ru.

$ host mx1.example.ru

mx1.example.ru has address 62.165.37.xx


Стоит почтовик exim4. При отправке писем с сайта (php mail()) на этот домен, письма не доходят.


$ php -r "var_dump(mail('user@example.ru', 'text mail', 'test'));"

bool(true)

$ sudo grep user@example.ru /var/log/exim4/mainlog

2010-09-16 13:23:42 1Ow8on-0005Sb-Cu ** user@example.ru: Unrouteable address


При конфигурировании exim4 кроме прочего пишет:


$ sudo dpkg-reconfigure exim4-config

Please enter a semicolon-separated list of recipient domains for which this machine

should consider itself the final destination. These domains are commonly called 'local

domains'. The local hostname (example.ru) and 'localhost' are always added to the list

given here.


В общем проблема как раз в этом, как сделать так, чтобы the local hostname больше не участвовал в спике локальных доменов для отправки почты?

Предыстория: До этого стоял обычный sendmail, была та же проблема. Нагуглил много примерно одинаковых решений. Вот одно из: forum.lissyara.su/viewtopic.php?f=20&t=21720 Пытался прогнуть sendmail, ничего не получилось, плюнул, поставил exim4, как и человек по ссылке, но проблему не решило.



  Сведения об ответе

fo_I_K

08:48, 27th August, 2020

откройте конфиг экзима и посмотрите на параметр local domains (об этом, кстати, и текст ошибки говорит). Письма на домены из этого списка будут считаться обслуживаемыми эти сервером. Все остальные — чужие и будут пересылаться дальше.


  Сведения об ответе

fo_I_K

21:36, 13th August, 2020

Если в /etc/exim4/update-exim4.conf.conf параметр dc_eximconfig_configtype='smarthost' или dc_eximconfig_configtype='satellite'
То в файле /etc/exim4/exim4.conf.template есть такая настройка:
smarthost:
debug_print = "R: smarthost for $local_part@$domain"
driver = manualroute
domains = ! +local_domains
transport = remote_smtp_smarthost
route_list = * DCsmarthost byname
host_find_failed = ignore
same_domain_copy_routing = yes
no_more
Это значит, что принимать почту для example.com будет сам сервер. И не будет для домена отсылать на внешний. Например, если почта для домена на yandex'е. Чтобы вся исходила исправьте на
domains = local_domains : !local_domains


  Сведения об ответе

VCe znayu

17:31, 29th August, 2020

Если вы работаете на examle.com, то просто пропишите его в локальные домены и почта будет доставляться к вам в ящики.

Попробуйте настроить нормально MX записи.


  Сведения об ответе

appple

18:38, 26th August, 2020

В файле /etc/exim4/exim4.conf.template я нашел следующую строку:
domainlist local_domains = MAIN_LOCAL_DOMAINS

Закомментировал и добавил:
domainlist local_domains = localhost


После этого в логах пишется:
2010-09-16 14:24:39 1Ow9ll-00065A-Ce ** user@example.ru R=dnslookup T=remote_smtp: SMTP error from remote mail server after MAIL FROM:<admin@example.ru> SIZE=1361: host mx1.example.ru [62.165.37.xx]: 550 <admin@example.ru>, Sender unknown

Что бы это значило? Как я понимаю, это уже почтовик на сервер mx1 отказывается принимать письмо на том основании, что письмо отправлено от пользователя с домена example.ru, а почтой с этого домена рулит он сам и думает, что его хотят обмануть? Или тут что-то другое?


  Сведения об ответе

PIRLO

15:20, 6th August, 2020

Проставь вот такие штуки:

domainlist local_domains = localhost: example.com: example.org: example.xxx

Должно получиться что почта не посылается через SMTP транспорт, а кладется в почтовые ящики.

P.S. Если все совсем плохо готов за небольшую деньгу помочь с EXIM. Есть рекомендации и готовые prodaction почтовые сервера.


Ответить на вопрос

Чтобы ответить на вопрос вам нужно войти в систему или зарегистрироваться