Я пытаюсь настроить 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
append_at_myorigin
имеет ценность yes
, то postfix перепишет адрес получателя на external@linuxmachine.example.com (вы можете увидеть это в mail.log выше)mydestination
имеет ценность $myhostname
или linuxmachine.example.com, поэтому postfix применит карту псевдонимов в /etc/aliases
.Вот что происходит после модификации конфигурации
append_at_myorigin
имеет ценность yes
, то postfix перепишет адрес получателя на external@linuxmachine.example.com (вы можете увидеть это в mail.log выше)mydestination
не содержит $myhostname
или linuxmachine.example.com, поэтому postfix не будет применять алиасинг в /etc/aliases