Я пытаюсь настроить postfix
Linux-машину (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.cf
then 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