我有一台配置为 postfix MTA 的服务器,并且还运行着一个 munin 节点。在 /etc/aliases 中我添加了:
root: [email protected]
在postfix的main.cf中配置:
mydomain = my.domain
myorigin = $mydomain
alias_database = hash:/etc/aliases
relay_domains = my.domain
append_at_myorigin = no
...
每次更改别名或 Postfix 配置文件后,我都会调用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=<[email protected]>
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=<[email protected]>,
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 <[email protected]>: 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=<[email protected]>
Dec 22 16:45:20 myserver postfix/bounce[22100]: 5CFBA2011E0: sender non-delivery
notification: A98B72012D2
不明白为什么“root”(orig_to)没有被替换为“[电子邮件保护]“就像在别名文件中指定的那样。似乎后缀将myorigin
值附加到“root”。不知道为什么,因为我也指定了append_at_myorigin = no
。
这是怎么回事?我想用“[电子邮件保护]“。 我怎样才能做到这一点?
答案1
不确定“my.domain”到底是什么,但是别名仅用于本地递送。
相反,你可能想使用虚拟地图。
以 root 身份(或 sudo)
在 /etc/postfix/virtual 中(或者虚拟的是)
root [email protected]
在 main.cf 中
virtual_maps = hash:/etc/postfix/virtual
或(后缀的现代版本)
virtual_alias_maps = hash:/etc/postfix/virtual
虚拟地图修改后
# postmap /etc/postfix/virtual
# postfix reload
请注意,所有发往“root”的邮件都将被重定向至“[电子邮件保护]“。
答案2
就我而言,我想使用/etc/aliases
(因为有些包使用它,所以你必须验证更改并复制到/etc/postfix/virtual
它不起作用的问题在于myorigin
。如果你设置myorigin
,所有发送给 root、nobody 和其他本地用户的邮件都会自动更改为root@myorigin
就我而言:/etc/aliases:
nobody: root
root: [email protected]
/etc/邮件名称:
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
在这种情况下,所有发送给无人的邮件都会被改为[email protected]
(因为myorigin
),然后发送到某个地方。
我必须改变mydestination
:
mydestination = myhost.example.com, othername, localhost.localdomain, localhost
现在发送到的邮件nobody
被重定向到root
,后者变为[email protected]
,但由于它在 中,因此它mydestination
会查找别名并更改为[email protected]
,但由于它在 中,因此它mydestination
会查找别名,并重定向到[email protected]
,而 不在 mydestination 中,因此它会被发送到应该发送的地方 ;D