我在 Debian VPS 中设置了一个邮件系统。除了我无法向用户发送电子邮件之外,一切工作都很顺利root
。
有一个解决方法可以在/etc/aliases
类似的内容中指定
root: <some_other_user>
然后所有发送到的电子邮件root@<fqdn>
都会进入<some_other_user>@<fqdn>
邮箱。
从安全角度来看,它甚至更好,但我想知道是否有一种方法可以向用户发送电子邮件root
。
那么,Postfix 在技术上可行吗?如果是这样,我该怎么做?
更新:
这是postfix.service
日志:
Apr 26 22:18:25 <hostname><fqdn> postfix/qmgr[2375]: 3905421760: from=<ddnomad@<fqdn>>, size=631, nrcpt=1 (queue active)
Apr 26 22:18:26 <hostname><fqdn> postfix/local[2429]: 3905421760: to=<mailuser@<fqdn>>, orig_to=<root@<fqdn>>, relay=local, delay=1.3, delays=0.21/0.01/0/1, dsn=2.0.0, status=sent (delivered to command: procmail -a "$EXTENSION")
据我了解,这意味着信件已成功发送。但始终没有送到root
他的邮箱里。
答案1
postfix 使用procmail
, 来发送电子邮件,并且当出于安全原因而运行postfix
调用时,发送到的电子邮件最终将发送给用户。procmail
nobody
root
nobody
Debian 邮件列表比我解释得更好,并建议解决方法:
postfix 自己的投递代理可以投递到 root 的邮箱,但是 postfix 永远不会以 root 身份派生外部程序(例如 procmail)。它要么将 UID 更改为正在传递的邮件的所有者,要么如果该用户是 root,则将 UID 更改为无人。
所以 procmail 在传递 root 的邮件时会以无人身份运行。
我通过将 /var/spool/mail/root 符号链接到 /var/spool/mail/nobody 来解决这个问题 - 然后我可以以 root 身份读取 root 的邮件。
请注意,这不是推荐的方法 - 大多数人会建议您将 root 的邮件定向到 /etc/aliases 中的另一个用户。
在线程的更上方,他们还记得postfix
关于根邮件的常见问题:
如果您使用 procmail(或其他一些命令)进行本地邮件传递,Postfix 将不会以 root 身份传递邮件。相反,Postfix 以无人身份运行 procmail(或其他)。也许有一天,Wietse 会足够信任 Postfix,以 root 身份运行外部命令。解决方案:就像您不应该以 root 身份登录一样(异常情况除外),您也不应该以 root 身份接收邮件。
为 root 创建邮件别名,将邮件转发给真实用户。