Postfix

從 postfix 郵件的部分或屬性中獲取純文字數據,例如 check_sender_access

  • March 15, 2017

我需要允許一些域進入我的 postfix 郵件伺服器。據我所知,這可以通過在 Postfix 中使用正則表達式(regexp)來完成。我也知道 postfix 使用一些屬性來“解析”郵件。其中之一是“ check_sender_access ”。這個用於對其應用正則表達式並過濾/控制郵件是否為REJECTEDPERMITTED。問題是我想知道“check_sender_access”從純文字郵件中擷取了什麼。我想知道,如果“check_sender_access”表現為一個變數,那麼在分析郵件時它裡面有什麼。

例如,這是一封郵件的標題(純文字):

Return-Path: notification+kr43fak5xrms22rr@facebookmail.com
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 <leila@domain.com>; Thu,  2 Mar 2017 03:00:04 -0500 (CST)
X-Spam-Flag: YES
X-Spam-Score: 7.017
X-Spam-Level: *******

使用這個純文字,我想知道上面文本的哪一部分是check_sender_access。即使可以做一些echo check_sender_access > dumpfile。據我所知,“ main.cf ”(postfix 的配置文件)不允許批處理命令(echo、grep、for、if、…)。如果是這樣,請告訴我如何。

要恢復,我想通過知道每次諸如 check_sender_access 之類的屬性的值(如果可能的話,以純文字形式)來調試/跟踪過程。

原因:我使用正則表達式來允許特定域,但這從來沒有奏效。但是,使用命令:postmap -q "domain.com" regexp:/etc/postfix/regexp/checkDomain這會根據正則表達式將決定返回到checkDomain文件中。這意味著正則表達式正在使用“domain.net”字元串作為測試,例如“gmail.com”被正確驗證。

我認為錯誤可能是: 1-在檢查check_sender_access部分 時,郵件在後綴到達該行之前被拒絕。2- 正則表達式正在驗證意外的行(整個標題而不是單個“gmail.com”或 IP 地址)。

自由軟體可以是非常可定制的,但對於某些事情來說它也是原始的。例如,我看不到“check_sender_access”創建(路由)作為屬性或函式。

這是check_sender_access的官方資訊 。感謝您光臨,如果需要更多資訊,請告訴我。

通過 SMTP 發送電子郵件時,發件人首先發出MAIL FROM: address命令。這裡應該是發件人的電子郵件地址,是address指和匹配的內容。當郵件發送給您時,您的伺服器會接收它並將其放置在電子郵件的頂部,它成為標題。check_sender_access``address``Return-Path

因此,在您的範例電子郵件中,正在檢查的地址check_sender_accessnotification+kr43fak5xrms22rr@facebookmail.com

請記住,這很容易偽造。

引用自:https://serverfault.com/questions/838519