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

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

Я пытаюсь настроить postfixLinux-машину (Debian 8 с Postfix 2.11). Но у меня возникли некоторые проблемы с /etc/aliasesкорректной работой.

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

Теперь на 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 [email protected] comes from external through Exchange to Linux
parser: |/home/user/programname 

# command "mail external" does not work! It sends to external@linuxmachine"
external: [email protected] 

Если я закомментирую строку mydestinationв main.cfthen mail externalотправляет почту [email protected](которая приходит), но входящая почта [email protected]не отправляется через канал. Так что, просто наоборот.

Что мне нужно ввести 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=<[email protected]>, 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 <[email protected]> [InternalId=162319] Queued mail for delivery)

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

Jun 19 16:07:31 linuxmachine postfix/smtp[2299]: B562720039C: to=<[email protected]>, 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 <[email protected]> [InternalId=162971] Queued mail for delivery)

решение1

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

объяснение

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

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

Теперь после изменения конфигурации вот что происходит

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

Связанный контент