从 Postfix 邮件的部分或属性(例如 check_sender_access)获取纯文本数据

从 Postfix 邮件的部分或属性(例如 check_sender_access)获取纯文本数据

我需要允许某些域进入我的 postfix 邮件服务器。据我所知,这可以通过使用正则表达式 (regexp)在 Postfix 中。我还知道 Postfix 使用一些属性来“解析“邮件。其中之一是”检查发送者访问“。这个用于应用正则表达式并过滤/控制邮件是否拒绝或者允许。问题是我想知道“check_sender_access”从纯文本邮件中捕获了什么。我想知道,如果“check_sender_access”表现为变量,那么在分析邮件时它里面有什么。

例如,这是一封邮件的标题(纯文本):

Return-Path: [email protected]
Received: from ms3.domain.com (LHLO ms3.domain.com) (10.4.1.4) by
  ms3.domain.com with LMTP; Thu, 2 Mar 2017 03:00:08 -0500 (CST)
Received: from localhost (localhost.localdomain [127.0.0.1])
     by ms3.domain.com (Postfix) with ESMTP id E8E8F17CED60
     for <[email protected]>; Thu,  2 Mar 2017 03:00:04 -0500 (CST)
X-Spam-Flag: YES
X-Spam-Score: 7.017
X-Spam-Level: *******

使用这个纯文本,我想知道上面哪部分文本是检查发送者访问. 即使有可能做出一些echo check_sender_access > dumpfile。 据我所知 ”主配置文件“(postfix 的配置文件)不允许批处理命令(echo、grep、for、if、...)。如果是这样,请告诉我如何做。

总结一下,我想调试/跟踪通过了解每次属性(例如 check_sender_access)获得的值(如果可能的话,以纯文本形式)来了解该过程。

原因:我使用正则表达式允许特定域,但始终不起作用。但是,使用命令:postmap -q "domain.com" regexp:/etc/postfix/regexp/checkDomain这将根据正则表达式返回一个决定检查域名文件。这意味着正则表达式正在使用“domain.net”字符串作为测试,例如“gmail.com”已正确验证。

我认为错误可能是: 1- 在 postfix 到达该行之前,邮件被拒绝检查发送者访问部分已检查。2- 正则表达式正在验证意外的行(整个标题而不是单个“gmail.com”或 IP 地址)。

免费软件可以高度可定制,但对于某些事情来说,它也过于原始。例如,我无法将“check_sender_access”创建(路由)视为属性或函数。

这是检查发送者访问 。感谢您的光临,如果需要更多信息请告诉我。

答案1

通过 SMTP 发送电子邮件时,发件人首先发出命令MAIL FROM: addressaddress此处应该是发件人的电子邮件地址,是check_sender_access引用和匹配的内容。当邮件发送给您时,您的服务器会获取此信息address并将其放置在电子邮件的顶部,并成为标题Return-Path

因此,在您的示例电子邮件中,正在检查的地址check_sender_access[电子邮件保护]

请记住,这很容易伪造。

相关内容