Назад | Перейти на главную страницу

Exim, горячий для маршрутизации локальной почты на другой адрес

Я установил сервер Exim4 на свой сервер debian wheezy. Этот почтовый сервер отправляет почту только с localhost. Цель - отправка почты для моего сайта.

У меня есть задачи cron и другие службы, генерирующие почту для root пользователь. Эти письма не хранятся в /var/mail как и раньше, но отправлено exim на root@mydomain.com.

Я пытаюсь заставить exim отправлять письма для root к mypersoaddress@gmail.com скорее, чем root@mydomain.com.

Я пробовал добавить .forward в /root с участием mypersoaddress@gmail.com как содержание. Я пробовал также менять /etc/aliases с участием root: mypersoaddress@gmail.com. Дело в том, что маршрутизация работает на root@localhost но не для root который решается как root@mydomain.com

Я тестировал, как разрешается маршрутизация с помощью exim -bt :

root@srv02:~# exim -bt root@localhost
R: system_aliases for root@localhost
R: dnslookup for mypersoaddress@gmail.com
mypersoaddress@gmail.com
    <-- root@localhost
  router = dnslookup, transport = remote_smtp
  host gmail-smtp-in.l.google.com      [173.194.67.27] MX=5
  host alt1.gmail-smtp-in.l.google.com [74.125.143.27] MX=10
  host alt2.gmail-smtp-in.l.google.com [74.125.25.27]  MX=20
  host alt3.gmail-smtp-in.l.google.com [173.194.64.27] MX=30
  host alt4.gmail-smtp-in.l.google.com [74.125.142.27] MX=40
root@srv02:~# exim -bt root
R: dnslookup for root@mydomain.com
root@mydomain.com
  router = dnslookup, transport = remote_smtp
  host aspmx.l.google.com      [173.194.78.27] MX=1
  host alt1.aspmx.l.google.com [74.125.143.27] MX=5
  host alt2.aspmx.l.google.com [74.125.25.27]  MX=5
  host alt4.aspmx.l.google.com [74.125.142.27] MX=10
  host alt3.aspmx.l.google.com [173.194.64.27] MX=10

Бьюсь об заклад, это вопрос того, как настроен мой сервер (а не как настроен exim). Но чтобы хорошо понять, я хотел бы найти решение для обоих:

Используемые вами выходные данные отладки указывают на то, что вы используете систему конфигурации в стиле Debian. Я буду называть это exim4 чтобы прояснить, что есть некоторая дополнительная магия конфигурации, происходящая за пределами конфигурации exim по умолчанию, которая входит в исходный код. Любой, кто прочитает это позже, должен четко понимать, что некоторые из этих предложений не применимы, если они не используют конфигурации exim в стиле Debian.

Разница в вашем выводе -bt дает подсказку:

root@srv02:~# exim -bt root@localhost
R: system_aliases for root@localhost
R: dnslookup for mypersoaddress@gmail.com
mypersoaddress@gmail.com

root@srv02:~# exim -bt root
R: dnslookup for root@mydomain.com
root@mydomain.com

В первом он знал, что нужно искать в маршрутизаторе system_aliases, потому что "localhost" настроен как один из доменов, которому разрешено просматривать файл псевдонимов. Но во втором он пропустил этот файл псевдонимов, потому что «mydomain.com» отсутствует в этом списке. В exim4 этот список MAIN_LOCAL_DOMAINS макрос.

По моей оценке, одна из этих вещей, вероятно, решит вашу проблему. Пункты 2 и последующие - это потенциальные изменения в вашем exim.conf. Поскольку вы запускаете exim.4, вам необходимо настроить файлы конфигурации почты Debian в / etc / exim /, а затем запустить exim4-conf.conf или что-то в этом роде, чтобы эти изменения были прочитаны и сгенерирован новый файл конфигурации (/ var / lib / exim4 / config.autogenerated *), который фактически использует exim4:

  1. Убедитесь, что /root/.forward файл доступен для чтения пользователем exim.
  2. Добавьте mydomain.com в список доменов с именем + local_domains, который затем должен заставить exim4 искать файл $ HOME / .forward. Похоже, у вас уже есть этот набор правильно.
  3. Переместите маршрутизатор userforward, чтобы он происходил перед маршрутизатором dnslookup (что он уже делает, но, возможно, вы изменили схему маршрутизатора по умолчанию?)
  4. Добавьте mydomain.com в список доменов, которым разрешен поиск в файле псевдонимов. (вероятно, это сломает другие вещи)