我正在维护一个运行 FreeBSD 的 IMAP 服务器,它使用 exim 4.80 作为其 MTA。现在我尝试创建一个电子邮件别名,以便我可以向系统的所有用户发送地址,通知他们计划的停机时间等。这个想法是[email protected]
应该将邮件转发给系统上的所有用户。
我最初考虑有一个简单的简单/etc/aliases
条目,但注意到这不是我想要的,因为系统的用户可能有 Sieve 过滤器,它会丢弃所有传入的邮件,除了少数列入白名单的邮件。
我确实注意到 exim 可以使用appendfile 传输直接发送到本地 Maildir 目录(绕过任何其他 MDA,从而绕过 Sieve 过滤器) - 但我如何才能使单个传入邮件vmailusers
重定向到多个本地邮件目录?
您可以使用重定向路由器来处理别名消息。这也是运行用户提供的脚本/转发文件的那个。路由器的处理是从上到下进行的,因此下面的示例大致如下所示:
syswide_alias
路由器检查文件中的别名/etc/aliases
。如果找到一个,路由序列重新开始。original_local_part
变量,如果没有进行转发则该变量为空。如果查找成功,则传递消息。在这种情况下,处理停止(因为交付已完成),因此用户可能拥有的任何过滤器或转发都将被忽略。forced_delivery
路由器拒绝,.forward
将处理该文件。如果此文件包含别名,路由序列将重新启动。该
routers
部分应如下所示:syswide_alias
和forced_delivery
路由器都有选项,如果找不到文件则需要该选项allow_defer
(可能不会出现这种情况,但无论如何都不会造成伤害)编辑:上面的示例现在包含实现问题目标所需的全套路由器。