У меня настроен почтовый сервер, который отвечает за несколько виртуальных пользователей и доменов. Эти письма доставляются в соответствующий почтовый ящик.
Но я не могу заставить работать локальную доставку для системных учетных записей (root, http, ...). Это мой файл псевдонима:
root: <local_user>
<local_user>: <virtual_user@mydomain.org>
MAILER-DAEMON: postmaster
postmaster: root
bin: root
daemon: root
named: root
nobody: root
uucp: root
www: root
ftp-bugs: root
postfix: root
http: root
Это соответствующая часть /etc/postfix/main.cf
:
alias_database = $alias_maps
alias_maps = hash:/etc/postfix/aliases
append_dot_mydomain = no
html_directory = no
inet_protocols = ipv4
mail_owner = postfix
mailq_path = /usr/bin/mailq
manpage_directory = /usr/share/man
mydestination = localhost.$mydomain, localhost, localhost.localdomain
mydomain = <mydomain.org>
myhostname = <myhost.mydomain.org>
mynetworks_style = host
myorigin = $mydomain
sendmail_path = /usr/sbin/sendmail
setgid_group = postdrop
unknown_local_recipient_reject_code = 550
virtual_alias_maps = hash:/etc/postfix/virtual
virtual_gid_maps = static:5000
virtual_mailbox_base = /home/vmail
virtual_mailbox_domains = <mydomain.org mydomain2.org mydomain3.org ...>
virtual_mailbox_maps = hash:/etc/postfix/vmailbox
Значения в <...>, очевидно, являются заполнителями.
Когда я локально отправляю письмо на root
. Postfix завершает адрес root@mydomain.org, который затем хочет доставить через virtual
но конечно root@mydomain.org
не является действительным виртуальным адресом (и быть не должно).
Это сработает, если адрес будет заполнен на root@localhost
для местной доставки. Но при отправке писем.
Как мне этого добиться? Или что еще мне нужно сделать, чтобы местная доставка работала? Спасибо за вашу помощь.
/ e: добавлено mydomain = <mydomain.org>
к приведенному выше выводу конфигурации, потому что это не было очевидно.
Попробуйте добавить к своему определению моего места назначения
mydestination = localhost.$mydomain, localhost, localhost.localdomain, <mydomain.org>
Или измените адрес электронной почты, чтобы перейти на root @ localhost.
Я перестал использовать локальную учетную запись для любой электронной почты и настроил все системные учетные записи как виртуальные домены. Затем я могу запустить электронную почту для системы, используя тот же набор инструментов, что и для виртуальных доменов (и вся почта хранится в одном месте).
Я не уверен, что ваша текущая конфигурация заблокирует электронную почту root, которая приходит извне. Возможно, вы захотите это проверить.
По умолчанию постфикс добавит $myorigin
всякий раз, когда у получателя нет действительного домена. Это поведение контролировалось append_dot_mydomain параметр (по умолчанию: да). Вы можете прочитать некоторую схему перезаписи, которую делает postfix в эта страница.
Так как myorigin
был установлен как $ mydomain, тогда вы получите поведение, описанное выше
Когда я локально отправляю письмо root. Postfix дополняет адрес до root@mydomain.org, который затем хочет доставить через виртуальный, но, конечно, root@mydomain.org не является действительным виртуальным адресом (и не должен быть).
Изменить myorigin
к localhost.$mydomain
. Он установит адрес завершения на localhost.$mydomain
. Поскольку localhost. $ Mydomain был определен в mydestination
тогда postfix будет использовать / etc / aliases для совмещения имен.
Одно из решений - просто добавить виртуальный домен (обычно полное имя хоста) и определения виртуального почтового ящика для всех локальных учетных записей, которым вы хотите разрешить отправку почты.