Exim не доставляет почту в Dovecot, когда она приходит с внешнего ретранслятора (Unrouteable address)
У меня есть виртуальный сервер, на котором работает Debian Stretch, и я намерен стать почтовым обменом (и, возможно, веб-сервером) только для нескольких личных доменных имен. (В настоящее время 1, хотя еще 2 в ближайшее время.) Я использую Exim в качестве почтового обмена и Dovecot для виртуальных пользователей для доступа к почтовым ящикам.
Я использую пакет exim4-daemon-heavy с комбинированным форматом конфигурации, который хранится в /etc/exim4/exim4.conf.template
. Я также использовал это руководство в качестве основы для настройки маршрутизации exim для виртуальных пользователей Dovecot, с некоторыми адаптациями для того, что я хочу (мультидоменный) и для того, чтобы оно работало на Debian Stretch.
Мои намерения в отношении каждого доменного имени, для которого я хочу разместить почту / Интернет:
- Иметь единого системного пользователя.
- Каждый домен хранит все (почту и сеть) на
/home/
. - Почта в
/home//mail
. - Веб на
/home//public_html
. - Каждый почтовый ящик в домене на
/home//mail/
. - Каждый почтовый ящик использует формат MAILDIR, а не MBOX.
- Нет записей о системных пользователях для каждого виртуального почтового ящика, Dovecot будет отвечать за ведение списка виртуальных пользователей.
Вы, наверное, заметили, что это немного похоже на то, как cPanel / WHM работает, так почему бы мне просто не использовать это? Слишком дорого для того, что является только персональным VPS, размещенным в качестве виртуального сервера у меня дома. (Кроме того, мне очень нравится дистрибутив Debian, а не RHEL, который не поддерживает cPanel / WHM.)
Поначалу и Exim, и Dovecot отлично справлялись со своей работой. Я могу отправлять / получать (большинство) электронных писем без каких-либо проблем. Я также поставил Roundcube для доступа к веб-почте, никаких проблем там нет.
Однако когда exim получает почту от внешних ретрансляторов для определенных адресов электронной почты, он отказывается от почты с «Unrouteable address». Это может быть просто конфликт конфигурации.
Сценарий таков:
- Полное доменное имя VPS соответствует первому имени виртуального домена, для которого в данный момент размещается почта / Интернет. (Давайте назовем это «example.com».)
- Почтовый ящик, который полностью работает (и я замечаю больше всего), - это мой собственный почтовый ящик "adam@example.com".
- У меня есть системный пользователь "Адам", который я использую для управления через SSH. (Это имеет разрешение sudo.)
- Существует почтовый ящик для системных предупреждений «server@example.com», для которого я предназначался для получения писем от CRON, CSF + LFD, Webmin и т. Д. (Псевдоним «root» сопоставлен с этим адресом электронной почты.)
Что работает без проблем:
- IMAP / SMTP доступ к "adam@example.com".
- IMAP / SMTP доступ к "server@example.com".
- Почта из виртуального почтового ящика "adam@example.com" на "server@example.com".
- Почта из виртуального почтового ящика «server@example.com» на «adam@example.com».
- Отправьте письмо с псевдонимом, например «root@example.com» или «webmin@example.com», на «server@example.com».
- Письмо с "where-else@example.org "на" adam@example.com ".
- Почта, пересылаемая с почтового ящика, размещенного интернет-провайдером, «adam@my-isp.example.org» на «adam@example.com».
Вещи, которые не работают:
- Письмо с «where-else@example.org »на« server@example.com »отклоняется с« Unrouteable address ».
- Почта, пересылаемая с почтового ящика, размещенного у интернет-провайдера «server@my-isp.example.org» на «server@example.com», отклоняется с «Unrouteable address».
Пример строки из журнала отклонений exim:
H=some-relay.my-isp.example.org [a.b.c.d] X=TLS1.2:DHE_RSA_AES_128_CBC_SHA1:128 CV=no F=<anywhere-else@example.org> rejected RCPT <server@example.com>: Unrouteable address
Я полагаю, что проблема может быть в том, что exim не знает, куда отправлять почту с внешнего ретранслятора, или Dovecot не верит, что почтовый ящик "server@example.com" существует. Я считаю, что последнему труднее поверить, поскольку почта от «adam@example.com» прекрасно с этим справляется, и это также использовало бы список виртуальных пользователей Dovecot.
Вот конфигурация маршрутизатора Exim для Dovecot:
##################################################### ### router/299_exim4-config_dovecot_router ##################################################### ### router/299_exim4-config_dovecot_router ################################# # This router delivers mail to any dovecot virtual # user who has a directory under /home/$domain/mail # Place after remote router and before localuser router # + addressing support requires uncommenting dovecot_router: driver = accept #local_part_suffix = +* #local_part_suffix_optional require_files = +/home/$domain/mail/$local_part/ transport = dovecot_transport ##################################################### ### end router/299_exim4-config_dovecot_router #####################################################
Поскольку я думал, что возможен конфликт с router/300_exim4-config_real_local
сидением с 300-м приоритетом, я перешел 299_exim4-config_dovecot_router
с его оригинального 320 приоритета на 299, но это не имело никакого значения. (Я подумал, что, возможно, это заставит exim попытаться отправить письмо Dovecot, прежде чем пытаться передать его в почтовый ящик пользователя системы.)
Вот транспортная конфигурация для Dovecot:
##################################################### ### transport/40_exim4-config_dovecot_transport ##################################################### # Transport to send any mail for virtual dovecot users to correct maildir box dovecot_transport: debug_print = "T: dovecot_virtual appendfile for $local_part@$domain" driver = appendfile create_directory directory_mode = 0750 directory = /home/$domain/mail/$local_part maildir_format = true delivery_date_add envelope_to_add return_path_add user = $domain group = $domain mode = 0640 mode_fail_narrower = false ##################################################### ### end transport/40_exim4-config_dovecot_transport #####################################################
Я не думаю, что это будет так актуально, но вот конфигурация для аутентификации Exim SMTP-входов через Dovecot:
# Authenticate against Dovecot dovecot_plain: driver = dovecot public_name = PLAIN server_socket = /var/run/dovecot/auth-client server_set_id = $auth1 dovecot_login: driver = dovecot public_name = LOGIN server_socket = /var/run/dovecot/auth-client server_set_id = $auth1
Обратная трассировка exim из оболочки на "example.com":
# exim -bt server@example.com server@example.com router = dovecot_router, transport = dovecot_transport
Обратный путь exim до оболочки из несвязанной системы Debian, которая использует exim в спутниковом режиме:
# exim -bt server@example.com R: smarthost for server@example.com server@example.com router = smarthost, transport = remote_smtp_smarthost host mailhost.my-isp.example.org [a.b.c.d] port=587 host mailhost.my-isp.example.org [a.b.c.e] port=587
Обратные следы были одинаковыми при запросах «adam@example.com» и «server@example.com» из обеих систем.
Пожалуйста, дайте мне знать, если потребуется дополнительная информация, или если вы хотите, чтобы я провел еще какие-то тесты. Я надеюсь, что это довольно простая проблема конфигурации, которую я пропустил.
Я ценю это проблема с сервером, а не проблема конечного пользователя. Первоначально я спрашивал об этом в Server Fault, но это не считалось «бизнесом» для этого сообщества.
Спасибо за прочтение. :)
0 ответов на вопрос
Похожие вопросы
-
1
Сконфигурируйте exim в Debian 6
-
2
Отказ от почтового спама в массы. Что делать?
-
2
Exim + ClamAV ошибка доступа к файлу
-
-
0
Отключить сообщение об ошибке Dovecot pipe
-
2
Подача писем из папки imap в ситовый скрипт
-
0
Запуск МТА: без сети занимает много времени?
-
1
Sendmail + Dovecot Не могу получать электронные письма
-
2
20 ГБ + стоимость писем в моем / home, что является лучшим решением для этого?
-
0
Как я могу настроить exim4 для маршрутизации почты следующим образом?
-
0
Dovecot / Postfix-mysql Псевдонимы электронной почты неправильно перенаправлены