![后缀条件收件人重写](https://linux22.com/image/687224/%E5%90%8E%E7%BC%80%E6%9D%A1%E4%BB%B6%E6%94%B6%E4%BB%B6%E4%BA%BA%E9%87%8D%E5%86%99.png)
我正在努力将 Postfix 与 RT 集成。我对这些都很陌生,所以我可能会犯一些愚蠢的错误。
AFAIU,Postfix 和 RT 集成了 RT 队列和文件中的收件人地址之间的映射/etc/alias
。
我们对两个队列完成了此操作:
support: "|/opt/rt4/bin/rt-mailgate --queue general --action correspond --url http://localhost"
support-urgent "|/opt/rt4/bin/rt-mailgate --queue urgent --action correspond --url http://localhost"
因此,每当电子邮件发送到 时[email protected]
,它就会进入常规队列,而每当电子邮件发送到 时[email protected]
,它就会进入另一个队列。
然而,我们希望通过仅向客户传达一个电子邮件地址来简化他们的生活:[email protected]
。
然后,我们会保留一份与我们有合同并给予优先权的客户名单。
基本上,我们需要根据对发件人地址的查找进行一些有条件的收件人重写。如果[email protected]
在我们的优先级列表中,则应将收件人地址更改为,[email protected]
以便 rt 将其选入正确的队列。如果[email protected]
不在列表中,则无需重写。
这是否简单做到或者我是否需要在另一个端口上有第二个 Postfix 实例?
谢谢您的帮助或线索。Seb。
答案1
RT 拥有一个名为 Scrips 的全自动化系统,可让您在 RT 票证上的每笔交易上添加操作。使用该系统,您可以创建一个新的脚本来“根据发件人更改队列”。然后,您可以编写一些操作代码来查看请求者的电子邮件地址,查阅一些将“发件人”域映射到您的队列的配置,然后更新传入票证上的队列。
RT 社区 wiki 有一个示例脚本自动设置队列。就您而言,您应该能够查看票证上的请求者对象,因为票证已经创建。条件是“创建时”。
答案2
如果您熟悉 Unix 工具但不熟悉 Perl,您也可以在 procmail 中执行此邮件处理。
您需要在 /etc/procmail/main.cf 中添加:
mailbox_command = procmail -a "$EXTENSION"
示例 /etc/procmailrc:
:0
* ^From: .*<[email protected]>+
* ^Subject:.*optional.*
| /opt/rt4/bin/rt-mailgate --action correspond --queue urgent --url http://localhost
您可以使用正则表达式来匹配VIP用户列表,或者在外部文件中保留白名单
然而,如果您要处理大量的 RT 配置,那么正如 Jim 所建议的那样,花时间了解 Scrips 可能是一个更好的选择。