2016-04-20 91 views
0

是否可以在postfix下使用milter來實現SPF?postfix-mta:Milter for SPF?

在我看來,這是不可能的,因爲postfix管理milters的方式。

根據做後綴文檔,所述雄魚放在這裏在消息處理鏈:

網絡=>後綴smptd所過程=> MILTER =>後綴smtpd的過程=>等

鑑於milter從postfix smtpd獲取消息,milter會看到它的初始連接來自postfix的IP地址。這意味着milter不知道原始發件人的IP地址。

SPF需要發件人的IP,所以看起來好像不可能在postfix milter中執行正確的SPF驗證。

這似乎正是當我安裝一個測試米爾特到我的後綴服務器時發生的事情。

我糾正這個問題,還是有人能夠通過postfix milter實現SPF?

在此先感謝。

回答

0

確定。我現在更瞭解這個問題。顯然,我使用的milter實現不能正確設置{client_addr}。我會假設我的問題是我正在使用的基礎milter實現(最新版本的pymilter)。

此外,我發現我可以解決這個問題,如下所示:postfix將客戶端的主機名和IP地址放入發送消息給milter之前設置的最上面的「Received」標題。因此,我可以在milter中解析出第一個「Received」標題,以獲取我需要的用於SPF的客戶端地址。

0

Sendmail/Postfix在傳入的SMTP會話期間執行由給定的提供者提供的回叫。 Postfix可能會根據回調的結果拒絕一些SMTP命令。

Postfix before-queue Milter support

後綴實現對Sendmail的版本8 MILTER(郵件過濾器)協議的支持。此協議由運行在MTA之外的應用程序用於檢查SMTP事件(CONNECT,DISCONNECT),SMTP命令(HELO,MAIL FROM等)以及郵件內容(標題和正文)。 所有這些發生在郵件排隊之前

https://en.wikipedia.org/wiki/Milter

+0

是的,這是發佈我的原始查詢之前閱讀的Postfix Milter文檔的全部內容。這個問題必須特別針對在postfix下運行的Miilter是否可以使用發件人的IP地址。 postfix提供給Milter的IP地址是後綴prequeue SMTPD進程的地址,它將消息傳遞給Milter,而不是原始發件人。正確的SPF處理需要原始發件人的IP地址。如果我可以將發件人的IP地址加入Milter,這將是Milter實施SPF的足夠信息。 – HippoMan

+0

請參閱{client_addr} - > http://www.postfix.org/MILTER_README.html。它包含由MTA/postfix/sendmail提供的SMTP TCP連接遠程端的IP地址。無論如何,基於Milter的SPF檢查實現 - > http://www.openspf.org/Software – AnFi