我有一个关于通过 Postfix 访问 MySQL 数据库并根据结果向电子邮件添加自定义标头的快速问题。因此,我们设置了一个带有 Postfix 的 Ubuntu 服务器,该服务器使用 MySQL DB 来存储虚拟地址,现在我的问题是:是否可以在虚拟地址表中查找地址,如果符合搜索条件,则向电子邮件添加自定义标头?如果电子邮件帐户附加了任何转发器,我们也需要在电子邮件到达时发生这种情况。
我找到了有关如何通过 Postfix 添加自定义标头的资源:http://saaboke.com/?p=22,但我不知道如何将其与 MySQL 合并。任何建议都将不胜感激。
谢谢你的时间。
答案1
这很简单。你需要添加一些东西到
smtp_recipient_restrictions = (...), check_recipient_access mysql:/etc/postfix/header_based_on_recipient.mysql, (...), permit
必须/etc/postfix/header_based_on_recipient.mysql
包含查询 mysql 所需的一切这里。我无法给您提供模板,因为这取决于您要查询的内容。
查询结果必须为空才能不添加标题。或者查询结果必须为
PREPEND X-fancy-new-header: Found you in the database
如果您需要多个标头,则此方法不适用。在这种情况下,您应该考虑使用米尔特与自制邮件过滤器接口。进行此类扩展工作不是 Postfix 的工作,而是委托给外部程序,因为 Postfix 是邮件程序,而不是消息重写器。
作为 Postfix 爱好者,我很抱歉推荐使用 Exim 进行扩展消息处理,因为这类功能是 Exim 内置的。