我正在运行一个带有 2 个域的 postfix 邮件服务器,一个真实域和一个带有虚拟用户的虚拟域,我的问题是如何向我的邮件服务器的所有用户发送“管理员消息”?这样我就可以通知他们有关更新/停机时间等的信息。
答案1
您需要创建一个指向所有用户的分发列表或别名。如果您手动配置 Postfix,您可以在 /etc/aliases 中创建一个新列表,例如:
allusers: user1, user2, user3
...并只包括该别名中的所有用户。保存新的 /etc/aliases 文件时不要忘记使用newaliases
(现在应该习惯了)。您应该创建脚本来自动维护这样一个分发列表,该列表知道如何枚举系统上的所有用户。例如,如果所有有效用户都在 /etc/passwd 中,您可以解析它,或者如果他们都在 /home/ 中有主目录,您可以列出这些目录。
维护起来可能很麻烦。您可以使用命令行 mailman 工具通过 Mailman 邮件列表实现相同的结果,但您仍然需要自己维护用户列表。有关更多信息,请参见:http://www.gnu.org/software/mailman/site.html
如果您使用 GUI 管理工具,例如 webmin 或 cpanel 等,它们都具有“向所有用户发送邮件”功能。
如果您使用 LDAP 作为 Postfix 的后端或存储有关用户、邮件帐户、邮件别名和邮件列表的信息,则可以使用 LDAP 中的“动态组”(Google 搜索 LDAP 动态组)之类的东西创建邮件列表/别名,并让 LDAP 服务器自动生成上述分发列表。不过听起来您并没有使用 LDAP...
不幸的是,在可能有许多本地用户的系统上手动配置 Postfix 的一般情况下,Postfix 不一定事先枚举用户。例如,它可能必须在邮件到达时按需在 getpwent、LDAP 等中查找用户名,具体取决于您的配置。很抱歉带来坏消息。
编辑:顺便说一句,如果您使用此/etc/aliases
方法,请务必在垃圾邮件过滤器中为该地址创建特殊过滤规则,以防止来自外部的邮件发往该地址。这样,您就不会让垃圾邮件发送者轻易得手。