См. эту часть документации Exim.
Короче говоря, доставка электронной почты довольно сильно зависит от MX
записей системы DNS, и в /etc/hosts
для них нет эквивалента.
По-видимому, тестовая функция Exim сначала принимает во внимание, сконфигурирован ли Exim для использования смарт-хоста или нет; если это так, он сообщит адрес (es )смарт-хоста, о котором он знает. (Конфигурация Smarthost = старая терминология электронной почты на основе sendmail
-, означающая «не пытайтесь доставлять напрямую на адрес назначения -, вместо этого отправляйте всю исходящую электронную почту на один конкретный сервер для дальнейшей обработки».)
Если конфигурация смарт-хоста не используется, тест проверяет наличие записи DNS MX
для rpi.mydomain.com
. Если запись MX имеет следующую форму, она интерпретируется как явно означающая «нет службы электронной почты для этого домена», и поиск завершается:
rpi.mydomain.com. IN MX 0.
Если в DNS нет записи MX и rpi.mydomain.com
указан в элементе конфигурации exim mx_domains
, поиск также завершится ошибкой "mail is undeliverable".
Если вышеуказанное еще не завершило поиск, exim проверит записи A
или AAAA
в DNS.
В вашей собственной сети, если вы хотите использовать rpi.mydomain.com
в качестве почтового сервера, вы должны настроить локальный Exim для использования его в качестве смарт-хоста. Вот соответствующая часть документации Exim. Короче говоря,замените блок конфигурации почтового маршрутизатора по умолчанию dnslookup
на этот блок конфигурации Exim:
send_to_smart_host:
driver = manualroute
route_list = !+local_domains rpi.mydomain.com
transport = remote_smtp
Это должно привести к тому, что вся почта, адресатом которой не является локальный почтовый ящик /var/mail/
, будет отправляться на rpi.mydomain.com
для дальнейшей обработки.
Что ж, -почтовые серверы, работающие надлежащим образом, уже давно должны иметь действующую регистрацию DNS, а также действительную обратную регистрацию DNS, которая согласуется с прямой записью DNS.
Как правило, когда почтовый сервер получает входящее соединение, которое не аутентифицировано и исходит не из известной -доверенной сети, почтовый сервер, как правило, сначала выполняет обратный поиск в DNS, чтобы узнать имя системы, пытающейся подключить. Затем он выполняет прямой поиск DNS, используя это имя, и сравнивает полученный IP-адрес (es )с фактическим исходным IP-адресом соединения. Если совпадений нет или нет обратной записи DNS, предполагается, что соединение исходит от возможного спамера, и может быть подвергнуто более строгим проверкам или полностью отключено. Это одна из старейших антиспамовых проверок -.
Делая это, вы изменяете фундаментальную природу приложения, делая его более не самостоятельным -в пределах одного дерева файловой системы. Это может быть не то, чего хотят ваши пользователи; ни о том, как ваше приложение используется, распространяется и устанавливается на практике. Если ваше приложение устанавливает себя -, содержащееся из одного архива, в отдельное поддерево файловой системы -как установку «переносимого приложения» , вы нарушите это. Если документация по вашему приложению рекомендует это как лучший способ установки , вы нарушаете работу многих ваших пользователей.
Вы создаете проблемы с поддержкой и увеличиваете расходы на поддержку (из-за устаревших файлов конфигурации, неожиданного общего доступа к файлам конфигурации, неожиданных событий при обновлении программного обеспечения и других )по единственной причине, кроме использования частей стандарта Linux, которые Многие операционные системы на основе Linux -намеренно не используют и это даже не относится к операционным системам, отличным от -Linux , таким как MacOS, на которые нацелена ваша программа.
Будьте осторожны.
Также имейте в виду, что /etc
не всегда является тем местом, которое операционные системы хотят использовать для подобных вещей. Например, в BSD приложения часто настраиваются на использование /usr/local/etc
, а не /etc
.
Точно так же стандарты FreeDesktop.org предпочитают, чтобы приложения использовали каталоги, указанные переменными среды XDG_CONFIG_HOME
и XDG_CONFIG_DIRS
.
По иронии судьбы, вы на самом деле отходите от модели "переносимого приложения" вашего приложения, не делая вещи более переносимыми.
И вы даже не выполняете работу по синхронизации документов.