У меня postfix v2.6.6, работающий на CentOS 6.3, имя хоста priest.ocsl.local (частный, внутренний домен) с рядом псевдонимов
supportpeople: user1@ocsl.co.uk, user2@ocsl.co.uk, user3@ocsl.co.uk
requests: "|/opt/rt4/bin/rt-mailgate --queue 'general' --action correspond --url http://localhost/", supportpeople
help: "|/opt/rt4/bin/rt-mailgate --queue 'help' --action correspond --url http://localhost/", supportpeople
Если я оставлю postfix с его конфигурацией по умолчанию, тогда псевдонимы будут разрешены правильно / как я ожидаю, так что входящая почта, скажем, на rt@ocsl.co.uk будет передаваться по конвейеру через команду rt-mailgate mailgate, а также доставляться ( через почтовый сервер для ocsl.co.uk (общедоступный домен)) на user1@ocsl.co.uk, user2 и т. д.
Проблема возникает, когда я определяю mydomain = ocsl.co.uk
в /etc/postfix/main.cf
(предполагается, что исходящая почта поступает, например, с адреса help@ocsl.co.uk). Когда я это делаю, postfix продолжает правильно запускать команду по конвейеру, однако он больше не расширяет вложенные псевдонимы, как я ожидал: вместо того, чтобы пытаться доставить на user1@ocsl.co.uk, user2 и т.д., он пытается отправить supportpeople @ ocsl.co.uk, который не существует на вышестоящем почтовом сервере и генерирует отчеты о недоставке. postconf -n
для нерабочей конфигурации следует (рабочая конфигурация отличается только строкой "mydomain".
alias_database = hash:/etc/aliases
alias_maps = hash:/etc/aliases
command_directory = /usr/sbin
config_directory = /etc/postfix
daemon_directory = /usr/libexec/postfix
data_directory = /var/lib/postfix
debug_peer_level = 2
html_directory = no
inet_interfaces = all
inet_protocols = all
mail_owner = postfix
mailq_path = /usr/bin/mailq.postfix
manpage_directory = /usr/share/man
mydestination = $myhostname, localhost.$mydomain, localhost
mydomain = ocsl.co.uk
newaliases_path = /usr/bin/newaliases.postfix
queue_directory = /var/spool/postfix
readme_directory = /usr/share/doc/postfix-2.6.6/README_FILES
sample_directory = /usr/share/doc/postfix-2.6.6/samples
sendmail_path = /usr/sbin/sendmail.postfix
setgid_group = postdrop
unknown_local_recipient_reject_code = 550
У нас действительно все работало так, как мы ожидали / хотели ранее, в более старой системе, работающей с Sendmail.
В supportpeople
значения не имеют доменной части в вашем $alias_maps
, таким образом Postfix добавляет $mydomain
им (из-за $append_dot_mydomain
). С участием mydomain = ocsl.co.uk
Postfix расширяется supportpeople
к supportpeople@ocls.co.uk
и пытается направить почту на MX для этого домена. Чтобы этого избежать, измените правую supportpeople
значения на полный адрес, для которого ваш Postfix является конечным пунктом назначения, например supportpeople@localhost
.
Кроме того, для изменения адреса отправителя вы должны использовать $myorigin
не $mydomain
.