У меня есть сервер, который настроен как postfix MTA и на котором также работает узел munin. В / etc / aliases я добавил:
root: hostmaster@my.domain
в main.cf постфикса настраивается:
mydomain = my.domain
myorigin = $mydomain
alias_database = hash:/etc/aliases
relay_domains = my.domain
append_at_myorigin = no
...
После каждого изменения псевдонимов или файлов конфигурации постфикса я звонил newaliases
или postmap <cfgfile>
и перезапустите postfix.
Каждый раз, когда munin отправляет электронное письмо (об ошибке), я получаю это в файле maillog:
Dec 22 16:45:19 myserver postfix/pickup[21509]: 5CFBA2011E0: uid=995 rom=<munin>
Dec 22 16:45:19 myserver postfix/cleanup[22094]: 5CFBA2011E0:
message-id=<20151222154519.5CFBA2011E0@my.domain>
Dec 22 16:45:19 myserver postfix/qmgr[21510]: 5CFBA2011E0: from=<munin>, size=999, nrcpt=1
(queue active)
Dec 22 16:45:20 myserver postfix/smtp[22099]: 5CFBA2011E0: to=<root@my.domain>,
orig_to=<root>, relay=internal.my.domain[XXX.182.189.136]:25, delay=4.2,
delays=3/0.01/1.1/0.09, dsn=5.1.1, status=bounced (host
internal.my.domain[XXX.182.189.136] said: 550 5.1.1 <root@my.domain>: Recipient address
rejected: User unknown in virtual mailbox table (in reply to RCPT TO command))
Dec 22 16:45:20 myserver postfix/cleanup[22094]: A98B72012D2:
message-id=<20151222154520.A98B72012D2@my.domain>
Dec 22 16:45:20 myserver postfix/bounce[22100]: 5CFBA2011E0: sender non-delivery
notification: A98B72012D2
Не понимаю, почему "root" (orig_to) не был заменен на "hostmaster@my.domain", как это было указано в файле псевдонимов. Кажется, постфикс добавляет myorigin
значение "корень". Не уверен, почему, потому что я также указал append_at_myorigin = no
.
Что тут происходит? Я хочу заменить "корневой" адрес на "hostmaster@my.domain". Как я могу это сделать?
В моем случае я хочу использовать / etc / aliases (потому что некоторые пакеты используют его, поэтому вам нужно проверять изменения и реплицировать в / etc / postfix / virtual
Проблема, почему это не работает, в моем происхождении. Если вы установите myorigin, все письма, отправленные в root, никто и другие локальные пользователи, автоматически изменятся на root @ myorigin
в моем случае: / etc / aliases:
nobody: root
root: admin@example.com
/ etc / mailname:
myhost.example.com
/etc/postfix/main.cf:
myorigin = /etc/mailname
myhostname = othername.example.com
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
mydestination = othername, localhost.localdomain, localhost
В этом случае все письма, отправленные никому, заменяются на nobody@myhost.example.com (из-за myorigin) и затем куда-то отправляются.
Мне нужно изменить место назначения:
mydestination = myhost.example.com, othername, localhost.localdomain, localhost
и теперь почта, отправленная никому, перенаправляется на root, который меняется на nobody@myhost.example.com, но поскольку он находится в моем месте назначения, он просматривает псевдонимы и изменяется на root@myhost.example.com, но поскольку он находится в моем месте назначения, он просматривает псевдонимы и перенаправляется на admin@example.com, которого нет в моем назначении, и отправляется туда, куда его следует отправить; D
Не уверен, что такое "my.domain", но псевдонимы используются только для местных доставок.
Вместо этого вы, вероятно, захотите использовать виртуальные карты.
Как root (или sudo)
В / etc / postfix / virtual (или где виртуальный является)
root hostmaster@my.domain
В main.cf
virtual_maps = hash:/etc/postfix/virtual
или (современные версии постфикса)
virtual_alias_maps = hash:/etc/postfix/virtual
после изменения виртуальной карты
# postmap /etc/postfix/virtual
# postfix reload
Помните, что вся почта для "root" будет перенаправлена на "hostmaster@my.domain".