Назад | Перейти на главную страницу

Завершение адреса локальной доставки Postfix

У меня настроен почтовый сервер, который отвечает за несколько виртуальных пользователей и доменов. Эти письма доставляются в соответствующий почтовый ящик.

Но я не могу заставить работать локальную доставку для системных учетных записей (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 для совмещения имен.

Одно из решений - просто добавить виртуальный домен (обычно полное имя хоста) и определения виртуального почтового ящика для всех локальных учетных записей, которым вы хотите разрешить отправку почты.