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

Postfix за реле для обработки входящей и исходящей почты с помощью / etc / aliases

Я пытаюсь настроить postfix на машине Linux (Debian 8 с Postfix 2.11). Но у меня проблемы с получением /etc/aliases чтобы работать правильно.

Настройка выглядит следующим образом: Сервер MS Exchange является фактическим почтовым сервером - он принимает и отправляет почту, и он находится в той же локальной сети, что и компьютер Linux. Postfix на машине Linux действительно использует эту машину Exchange в качестве ретранслятора для отправки почты. Это работает, например, mail external@gmail.com прибывает.

Теперь на Exchange существует почтовый адрес, который пересылается на машину Linux. В /etc/aliases У меня есть псевдоним для этого, который является каналом для программы, потому что письма, идущие на этот адрес, содержат некоторый код, который должен анализироваться программой.

Чтобы это сработало, мне нужно изменить mydestination установка в main.cf. Но как только я это сделаю, Postfix перестанет пересылать письма, если их псевдоним /etc/aliases используется. Работает только ввод длинного имени. Это моя конфигурация (я начал с нуля):

# main.cf
# our internet domain name (the thing after the "@")
mydomain = example.com

# this is the critical setting
mydestination = linuxmachine, 192.168.1.200, $mydomain

# IP of Exchange
relayhost = 192.168.1.100

# so that addresses look correct
masquerade_domains = $mydomain

# in order to make the pipe programm work with correct permission
default_privs = myuser

В этой конфигурации конвейерная доставка входящей почты работает, но отправка почты на псевдоним не работает:

# /etc/alias
# none of the entries are actual users on the linux machine!

#works when mail to parser@example.com comes from external through Exchange to Linux
parser: |/home/user/programname 

# command "mail external" does not work! It sends to external@linuxmachine"
external: externalmail@gmail.com 

Если я закомментирую строку mydestination в main.cf затем mail external отправляет письмо на externalmail@gmail.com (который приходит), но входящая почта на parser@example.com не отправляется по трубе. Итак, как раз наоборот.

Что мне нужно ввести main.cf или /etc/aliases чтобы иметь возможность отправлять почту с моей Linux-машины, используя короткие имена, и в то же время иметь возможность получать почту в канал? Все, что я хочу, - это чтобы специальный адрес анализировался на Linux-машине и чтобы пользователи Linux могли отправлять почту на выбранные адреса, используя короткие имена в качестве «роскошных» (вместо того, чтобы вводить полные адреса электронной почты).

Обновить: postconf -n вывод:

config_directory = /etc/postfix
default_privs = myuser
masquerade_domains = $mydomain
mydestination = linuxmachine, 192.168.1.200, $mydomain
mydomain = example.com
relayhost = 192.168.1.100

Обновление 2: вывод из /var/log/mail.info при выполнении mail external (почта на псевдоним) с mydestination установить как указано выше:

Jun 19 10:45:27 linuxmachine postfix/smtp[26425]: 6DFE02003AD: to=<external@linuxmachine.example.com>, orig_to=<external>, relay=192.168.1.100[192.168.1.100]:25, delay=0.24, delays=0/0/0/0.24, dsn=2.6.0, status=sent (250 2.6.0 <20150619084527.6DFE02003AD@linuxmachine.example.com> [InternalId=162319] Queued mail for delivery)

Обновление 3, после изменения mydestination согласно предложенному ответу, mail.info log показывает следующую строку при выполнении mail external:

Jun 19 16:07:31 linuxmachine postfix/smtp[2299]: B562720039C: to=<externalmail@gmail.com>, orig_to=<external>, relay=192.168.1.100[192.168.1.100]:25, delay=2.6, delays=0/0/0/2.5, dsn=2.6.0, status=sent (250 2.6.0 <20150619140728.B359620039E@linuxmachine.example.com> [InternalId=162971] Queued mail for delivery)

Очевидное решение ставится $myhostname или linuxmachine.example.com в mydestination параметр.

объяснение

Перед изменением конфигурации здесь фоновое событие после отправки электронной почты через mail external

  • Postfix получает электронную почту через службу самовывоза.
  • Поскольку у получателя нет доменных частей и (по умолчанию) параметра append_at_myorigin имеет ценность yes, то postfix перепишет адрес получателя на external@linuxmachine.example.com (вы можете увидеть это в mail.log выше)
  • По умолчанию параметр mydestination имеет ценность $myhostname или linuxmachine.example.com, поэтому postfix применит карту псевдонимов в /etc/aliases.
  • Postfix отправляет псевдоним external@linuxmachine.example.com на external@gmail.com, а затем отправляет его на хост gmail

Вот что происходит после модификации конфигурации

  • Postfix получает электронную почту через службу самовывоза.
  • Поскольку у получателя нет доменных частей и (по умолчанию) параметра append_at_myorigin имеет ценность yes, то postfix перепишет адрес получателя на external@linuxmachine.example.com (вы можете увидеть это в mail.log выше)
  • Сейчас mydestination не содержит $myhostname или linuxmachine.example.com, поэтому postfix не будет применять алиасинг в /etc/aliases