如何使别名扩展为命令返回的收件人列表?

如何使别名扩展为命令返回的收件人列表?

我有一个很少使用的/etc/aliases条目

vmailusers: :include:/usr/local/etc/vmailusers

/usr/local/etc/vmailusers文件由 cronjob 执行生成

ls /home/vmail | grep -v lists > /usr/locale/etc/vmailusers
chmod 0640 /usr/local/etc/vmailusers
chmod mailnull:mail /usr/local/etc/vmailusers

有没有办法避免运行 cron 作业,而是在使用别名ls时执行命令?vmailusers

答案1

使用 exim 后你就不再需要了/etc/aliases。你所要做的就是定义重定向路由器,如下所示:

vmail_aliases:
        driver          = redirect
        data            = ${lookup{$local_part}lsearch{/usr/local/etc/vmailusers}}
        file_transport  = address_file
        pipe_transport  = address_pipe

请参阅 exim spec 第 9.3 章,其中描述了 lsearch 在文件中的查找。至少,lsearch 的文件具有与相同的语法,因此/etc/aliases您不必将当前的 /usr/local/etc/vmailusers 转换为某种奇怪的格式。不要忘记放置该路由器您配置中的任何接受路由器。

每次处理消息时,Exim 都会查找给定的键,因此当您保存别名文件时,所有更改都会变为实际。

相关内容