2016-11-02 47 views
2

的Gmail以及當地的ISP通過DKIM的進出口郵件,但微軟並沒有與失敗在標題指出:進出口的DKIM簽名不驗證的Microsoft服務器(如Outlook,Hotmail等)*僅*

身份驗證結果:spf = pass(發件人IP是[正確的IP]) smtp.mailfrom = [correct domain] .co.uk; outlook.com; dkim =失敗(簽名確實 未驗證) header.d = [正確的域名]; outlook.com; dmarc = bestguesspass action = none header.from = [正確的域名];

我曾嘗試:

我發了封郵件到Outlook來自同一個域通過谷歌企業應用套件(G套房)電子郵件(使用不同的DKIM選擇,在另一個DNS TXT記錄即另一個公鑰)比較消息來源 - Google的消息通過了DKIM。

我注意到兩兩件事:

  1. 谷歌收錄在「H」標記少得多的頭,讓我重新進出口也使用正是這些,但無濟於事。

  2. Google在「h」標籤中包含了小寫的標題名稱,而Exim不包括,即使我在Exim的配置中以小寫字母輸入它們。我讀到生成標頭簽名散列時標題名稱應該是小寫字母,但文本沒有聲明這同樣適用於「h」標籤中的標頭名稱(http://dkimcore.org/specification.html第3.2節),但Google似乎做了這個。我想在Exim中重寫這個會很難嗎?

我還注意到,除了在「H」的差異,DKIM簽名頭結構是完全一樣都禁止一些空白的差異(參考Exim一個也只有分號分隔後的空間和新線路,所以它看起來很好,它只是以不同方式分解)。起初我以爲Exim可能沒有設置一些必要的標籤,但在這種情況下,錯誤應該是不同的。

進出口版本:4.87 運行在的cPanel 11的CentOS 7.2服務器 進出口DKIM配置:

dkim_remote_smtp: 
    driver = smtp 
    interface = <; ${if exists {/etc/mailips}{${lookup{${lc:$sender_address_domain}}lsearch{/etc/maili 
ps}{$value}{${lookup{${lc:$sender_address_domain}}lsearch{/etc/mailips}{$value}{${lookup{${perl{get_ 
sender_from_uid}}}lsearch*{/etc/mailips}{$value}{}}}}}}}} 
    helo_data = ${if exists {/etc/mailhelo}{${lookup{${lc:$sender_address_domain}}lsearch{/etc/mailhel 
o}{$value}{${lookup{${lc:$sender_address_domain}}lsearch{/etc/mailhelo}{$value}{${lookup{${perl{get_ 
sender_from_uid}}}lsearch*{/etc/mailhelo}{$value}{$primary_hostname}}}}}}}{$primary_hostname}} 
    dkim_domain = ${lc:$sender_address_domain} 
    dkim_selector = default 
    dkim_private_key = "/var/cpanel/domain_keys/private/${dkim_domain}" 
    dkim_canon = relaxed 
    dkim_sign_headers = to:from:subject:message-id:date:user-agent:mime-version:content-transfer-encoding 

(被我添加的最後一行 - 它以前沒工作,要麼)

由於它似乎錯誤具體涉及到簽名驗證,我不認爲以下是相關的,但無論如何我都包括它:

Exim電子郵件由服務器上沒有人先生髮送,但enve lope-from和Return-Path標題是預期發件人的正確電子郵件地址。這個領域不應該有任何問題,因爲即使是MS,SPF也會通過。

雖然從谷歌發送的電子郵件具有

郵件ID:< [ID] @ [發送方的域]>

的電子郵件通過進出口發送具有

Message ID:< [id] @ [server host name]>

任何幫助/想法將不勝感激。一如既往的MS讓生活困難......有趣?

回答

2

哇,真幸運!在發佈郵件列表之前,我毫無希望地搜索了Exim的用戶郵件列表,我找到了一個很好的答案。我打開的其中一條公告消息也發佈到了exim-dev,歸檔查看器在底部顯示了此郵件列表中的上一條消息,恰好是關於一箇舊的已解決的DKIM錯誤「dkim_sign_headers中包含的標題是不在消息中時不在簽名中「。

然而,這給了我的想法,以排除那些沒有在我的進出口產生的電子郵件dkim_sign_headers ......頭和它的工作:)

DKIM =通(簽名得到驗證)

似乎DKIM簽名應該使用在「h」標籤中指定的不存在的頭文件進行計算,以便使簽名失敗,如果隨後將其添加到電子郵件中(使安全性有所提高),那麼我的猜測會被MS搞亂計算,但我不知道。

+0

感謝分享:) – Henry

+0

嗨!解決方案是在Exim配置文件中添加下一個字符串? 'dkim_sign_headers = to:from:subject:message-id:date:user-agent:mime-version:content-transfer-encoding' – NetVicious

相關問題