我需要通过 header_checks 查找执行自定义算法。
我已配置smtpd_sasl_authenticated_header = yes
好在标题中查看哪个用户正在发送消息,例如:
Received: from [0.0.0.0] (unknown [192.168.255.4]) (Authenticated sender: [email protected]) by smtp.mydomain.com (Postfix) with ESMTP id 08333374399 for <[email protected]>; Tue, 28 Oct 2008 10:45:37 -0400 (EDT)
我需要建立一种机制来重写...电子邮件地址的 md5sum 在哪里(出于安全原因)。(Authenticated sender: [email protected])
(Authenticated sender: XXXXXX)
XXXXXX
我可以通过header_checks
查找表来做到这一点吗?
我知道这是可能的,通过一个外部守护进程(例如 php 或 perl 脚本)充当TCP
或SOCKETMAP
查找表类型的服务器,但是否有更简化的机制来实现这一点?
答案1
限制:对于此解决方案,您必须列出所有用户及其 md5。除 tcptable/外部守护进程解决方案外,不支持 MD5 计算大多数后缀表
您可以使用 pcre 表和 header_checks 功能来实现这一点。在 header_check 表中指定此行。我在 pcre 类型的表中测试了这个表达式。
/^(Received: .*Authenticated sender:)(.*?\))(.*)$/ REPLACE $1 md5ofstring) $3