2016-03-05 32 views
0

我已經在我的centos 7機器上安裝了城堡電子郵件服務器。一切都設置爲應該是,MX,SPF記錄等。當我在我的PHP中使用phpmailer發送S/MIME加密電子郵件到我自己的Gmail帳戶它不會加密郵件。當我查看原始郵件點擊我可以看到,它是由這些線簽署(或因此我認爲):Centos 7,城堡電子郵件,服務器,phpmailer和S/MIME

Content-Type: multipart/signed; protocol="application/x-pkcs7-signature"; micalg="sha1"; boundary="----3CB610479D73F43DC55191B5AECECA87" 


This is an S/MIME signed message 

但在底部把它添加的文件作爲附件。

------3CB610479D73F43DC55191B5AECECA87 
Content-Type: application/x-pkcs7-signature; name="smime.p7s" 
Content-Transfer-Encoding: base64 
Content-Disposition: attachment; filename="smime.p7s" 

MIIG0gYJKoZIhvcNAQcCoIIGwzCCBr8CAQExCzAJBgUrDgMCGgUAMAsGCSqGSIb3 ............ 

所以我不確定問題出在哪裏。我開始認爲它是不支持S/MIME協議的城堡服務器?

在發送之前,我在phpmailer中使用了 - > sign(...)方法,並且我的證書和密鑰正在工作,因爲appache在我的網站上起訴他們。然而,我沒有設置符號函數的最後一個參數,即使將它設置到CA chain.crt文件後,它也產生了與上面相同的結果。

我真的想發送加密的電子郵件,願意在必要時更改電子郵件服務器。任何建議將被認真考慮。

回答

0

目前PHPMailer不支持S/MIME加密,只有簽名。簽名的電子郵件在不解密的情況下可讀,但您可以驗證其內容未被篡改。簽名看起來像一個附件,而不理解S/MIME的客戶端會將其顯示爲通用附件,因此您所看到的是預期的行爲。

+1

Synchro本人:)在phpmailer的stackoverflow問題上看到你的名字很多。所以據我所知,S/MIME加密和簽名不是一回事?我想要做的是降低我的郵件被標記爲垃圾郵件的機率,所以我認爲使用tls aka簽名進行加密也是可行的,無論如何。 –

+0

我在單元測試中看到您的證書和密鑰文件都是.pem格式。我的文件不是以每個文件的.key和.crt結尾,這是否會成爲問題?我開始明白,爲了減少我被歸類爲垃圾郵件的變化,我正在尋找DKIM而不是簽名,這是正確的嗎? –

+0

DKIM和S/MIME簽名非常相似。 DKIM驗證消息是否已從特定系統發送,而S/MIME驗證特定用戶是否發送了該消息。您可以同時執行這兩項操作,但從反垃圾郵件的角度來看,DKIM可能更有用。 – Synchro