简体   繁体   English

使用opendkim在MTA上签名时DKIM失败(正文哈希)

[英]DKIM Fails (body hash) when signing at MTA using opendkim

We are running into trouble with signing our outgoing mailings with DKIM using opendkim as a filter for Postfix. 使用opendkim作为Postfix的筛选器与DKIM签署外发邮件时,我们遇到了麻烦。

This issue only occurs when sending HTML emails from phpList. 仅当从phpList发送HTML电子邮件时,才会发生此问题。 All other text mailings and mailings from other services sign correctly and verify. 所有其他文本邮件和来自其他服务的邮件均正确签名并验证。 phpList uses phpMailer as the engine. phpList使用phpMailer作为引擎。

If we send the mailing as "text", then we have no problem. 如果我们以“文本”形式发送邮件,则没有问题。 If we send the mailing as "HTML" then body hash fails. 如果我们以“ HTML”形式发送邮件,则正文哈希将失败。

This problem existed in v2, however we used to force phpList to ONLY send as HTML. 此问题在v2中存在,但是我们曾经强制phpList仅以HTML形式发送。

This error occurs when sending the message as a joint HTML and TEXT email (which is the default in v3). 当将消息作为HTML和TEXT联合电子邮件发送时出现此错误(这是v3中的默认值)。

I presume it's something to do with line breaks/returns. 我认为这与换行符/返回符有关。

Can somebody point us in the right direction? 有人可以指出我们正确的方向吗?

Thanks for your help in advance. 感谢您的帮助。

Port25 verifier service - a message that passes DKIM (Text only) Port25验证程序服务-传递DKIM的消息(仅文本)

==========================================================
Summary of Results
==========================================================
SPF check:          pass
DomainKeys check:   neutral
DKIM check:         pass
Sender-ID check:    pass
SpamAssassin check: ham

==========================================================
Details:
==========================================================


----------------------------------------------------------
DomainKeys check details:
----------------------------------------------------------
Result:         neutral (message not signed)
ID(s) verified: header.From=updates@flyawaysimulation.com
DNS record(s):

----------------------------------------------------------
DKIM check details:
----------------------------------------------------------
Result:         pass (matches From: updates@flyawaysimulation.com)
ID(s) verified: header.d=flyawaysimulation.com
Canonicalized Headers:
    to:check-auth-ryan=rbftpnetworks.com@verifier.port25.com'0D''0A'
    subject:Test'20'123'0D''0A'
    date:Thu,'20'18'20'Sep'20'2014'20'21:50:35'20'+0100'0D''0A'
    from:Fly'20'Away'20'Simulation'20'<updates@flyawaysimulation.com>'0D''0A'
    reply-to:Fly'20'Away'20'Simulation'20'<updates@flyawaysimulation.com>'0D''0A'
    list-help:<https://flyawaysimulation.com/lists/?p=preferences&uid=1e629246241f8e9714134ee8076ad406>'0D''0A'
    list-unsubscribe:<https://flyawaysimulation.com/lists/?p=unsubscribe&uid=1e629246241f8e9714134ee8076ad406&jo=1>'0D''0A'
    list-subscribe:<https://flyawaysimulation.com/lists/?p=subscribe>'0D''0A'
    list-owner:<mailto:abuse@flyawaysimulation.com>'0D''0A'
    dkim-signature:v=1;'20'a=rsa-sha256;'20'c=relaxed/simple;'20'd=flyawaysimulation.com;'20's=mail;'20't=1411073436;'20'bh=hhSjWh2jttCh3y1SOIZzUVlxN+KYTuNZ+eh16bzchHc=;'20'h=To:Subject:Date:From:Reply-To:List-Help:List-Unsubscribe:'20'List-Subscribe:List-Owner;'20'b=

Canonicalized Body:
    '20'test'20'123'0D''0A'
    '0D''0A'
    '0D''0A'
    '0D''0A'
    '20''20''0D''0A'


DNS record(s):
    mail._domainkey.flyawaysimulation.com. 3600 IN TXT "v=DKIM1;p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDimrx9MV1sFyUCVPeH6SFMBy7Cb2AU6aB9i3GazP7QKWG5pWWkFEurFImNbwi4wKz6dtKQeEkcGzPdzyeD+hXaSG2sl86T4pnwIxUaBMlW+FWfaNx0XPphacPAYjtkJGVoZGmmIbK3tH8HLZqdCEy6YIKd0kNSXQqFEMQseHaR6wIDAQAB"

Public key used for verification: mail._domainkey.flyawaysimulation.com (1024 bits)

NOTE: DKIM checking has been performed based on the latest DKIM specs
(RFC 4871 or draft-ietf-dkim-base-10) and verification may fail for
older versions.  If you are using Port25's PowerMTA, you need to use
version 3.2r11 or later to get a compatible version of DKIM.



==========================================================
Original Email
==========================================================

Return-Path: <updates@flyawaysimulation.com>
Received: from web3.rbftpnetworks.net (195.224.144.101) by verifier.port25.com id h3d2q211u9cu for <check-auth-ryan=rbftpnetworks.com@verifier.port25.com>; Thu, 18 Sep 2014 16:50:41 -0400 (envelope-from <updates@flyawaysimulation.com>)
Authentication-Results: verifier.port25.com; spf=pass smtp.mailfrom=updates@flyawaysimulation.com
Authentication-Results: verifier.port25.com; domainkeys=neutral (message not signed) header.From=updates@flyawaysimulation.com
Authentication-Results: verifier.port25.com; dkim=pass (matches From: updates@flyawaysimulation.com) header.d=flyawaysimulation.com
Authentication-Results: verifier.port25.com; sender-id=pass header.From=updates@flyawaysimulation.com
Received: by web3.rbftpnetworks.net (Postfix, from userid 70)
    id 2FF6D3E2B4BC; Thu, 18 Sep 2014 21:50:35 +0100 (BST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple;
    d=flyawaysimulation.com; s=mail; t=1411073436;
    bh=hhSjWh2jttCh3y1SOIZzUVlxN+KYTuNZ+eh16bzchHc=;
    h=To:Subject:Date:From:Reply-To:List-Help:List-Unsubscribe:
     List-Subscribe:List-Owner;
    b=kz3pyKnsxvzKKc9I764d8xwTxMQkJNcdHSup9+BOoNujSXTOyyAM1tpc5QWIhGMa4
     NOwsePDv5qfladW3kAh7TuwWW9geH6gdV9PhHF5RCg6jyHHbUY8t4mpIcW7w4yNuIK
     BMMbXk4+puGpEKdyRgfGKXxYjI0bVKK1Ck2vdb5Q=
To: check-auth-ryan=rbftpnetworks.com@verifier.port25.com
Subject: Test 123
Received: from host81-138-131-190.in-addr.btopenworld.com [81.138.131.190] by flyawaysimulation.com with HTTP; Thu, 18 Sep 2014 21:50:35 +0100
Date: Thu, 18 Sep 2014 21:50:35 +0100
From: Fly Away Simulation <updates@flyawaysimulation.com>
Reply-To: Fly Away Simulation <updates@flyawaysimulation.com>
Message-ID: <535768d2df1f49b5df91d9b010abeba9@flyawaysimulation.com>
X-Priority: 3
X-Mailer: PHPMailer 5.2.5 (https://github.com/Synchro/PHPMailer/)
X-phpList-version: 3.0.7
X-MessageID: 8
X-ListMember: check-auth-ryan=rbftpnetworks.com@verifier.port25.com
Precedence: bulk
Bounces-To: updates@flyawaysimulation.com
List-Help: <https://flyawaysimulation.com/lists/?p=preferences&uid=1e629246241f8e9714134ee8076ad406>
List-Unsubscribe: <https://flyawaysimulation.com/lists/?p=unsubscribe&uid=1e629246241f8e9714134ee8076ad406&jo=1>
List-Subscribe: <https://flyawaysimulation.com/lists/?p=subscribe>
List-Owner: <mailto:abuse@flyawaysimulation.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain; charset=UTF-8

 test 123

Port25 verifier service - a message that fails DKIM (Text/HTML email) Port25验证程序服务-DKIM失败的消息(文本/ HTML电子邮件)

==========================================================
Summary of Results
==========================================================
SPF check:          pass
DomainKeys check:   neutral
DKIM check:         fail
Sender-ID check:    pass
SpamAssassin check: ham

==========================================================
Details:
==========================================================


----------------------------------------------------------
DKIM check details:
----------------------------------------------------------
Result:         fail (wrong body hash: expected nb2kCq5nNBE+IfyLiAIH9t/9x7Kk5PpCb+1GdO/wiJ8=)
ID(s) verified: 
Canonicalized Headers:
    to:check-auth-ryan=rbftpnetworks.com@verifier.port25.com'0D''0A'
    subject:Test'20'123'0D''0A'
    date:Thu,'20'18'20'Sep'20'2014'20'21:52:19'20'+0100'0D''0A'
    from:Fly'20'Away'20'Simulation'20'<updates@flyawaysimulation.com>'0D''0A'
    reply-to:Fly'20'Away'20'Simulation'20'<updates@flyawaysimulation.com>'0D''0A'
    list-help:<https://flyawaysimulation.com/lists/?p=preferences&uid=1e629246241f8e9714134ee8076ad406>'0D''0A'
    list-unsubscribe:<https://flyawaysimulation.com/lists/?p=unsubscribe&uid=1e629246241f8e9714134ee8076ad406&jo=1>'0D''0A'
    list-subscribe:<https://flyawaysimulation.com/lists/?p=subscribe>'0D''0A'
    list-owner:<mailto:abuse@flyawaysimulation.com>'0D''0A'
    dkim-signature:v=1;'20'a=rsa-sha256;'20'c=relaxed/simple;'20'd=flyawaysimulation.com;'20's=mail;'20't=1411073540;'20'bh=XMTdnEvx/N4aZB10KoQqWOQW+MUVFvU66kqiSqm0XKc=;'20'h=To:Subject:Date:From:Reply-To:List-Help:List-Unsubscribe:'20'List-Subscribe:List-Owner;'20'b=

Canonicalized Body:
    --b1_b4a02db1226bc348457a47d51e902619'0D''0A'
    Content-Type:'20'text/plain;'20'charset=UTF-8'0D''0A'
    Content-Transfer-Encoding:'20'quoted-printable'0D''0A'
    '0D''0A'
    '20'test'20'123'0D''0A'
    '0D''0A'
    '0D''0A'
    '0D''0A'
    '0D''0A'
    '0D''0A'
    '0D''0A'
    '0D''0A'
    '20'=20'0D''0A'
    '0D''0A'
    '0D''0A'
    '0D''0A'
    --b1_b4a02db1226bc348457a47d51e902619'0D''0A'
    Content-Type:'20'text/html;'20'charset=UTF-8'0D''0A'
    Content-Transfer-Encoding:'20'quoted-printable'0D''0A'
    '0D''0A'
    <html><head>=0A'20''20''20''20''20''20''20''20'<meta'20'content=3D"text/html;charset=3DUTF-8"'20'http-equ='0D''0A'
    '0D''0A'
    iv=3D"Content-Type">=0A'20''20''20''20''20''20''20''20'<title></title></head><body><p>&nbsp;test'20'12='0D''0A'
    '0D''0A'
    3</p>=0A<img'20'src=3D"https://flyawaysimulation.com/lists/ut.php?u=3D1e629246='0D''0A'
    '0D''0A'
    241f8e9714134ee8076ad406&amp;m=3D8"'20'width=3D"1"'20'height=3D"1"'20'border=3D"0"'20'/='0D''0A'
    '0D''0A'
    ></body></html>'0D''0A'
    '0D''0A'
    '0D''0A'
    --b1_b4a02db1226bc348457a47d51e902619--'0D''0A'


DNS record(s):

NOTE: DKIM checking has been performed based on the latest DKIM specs
(RFC 4871 or draft-ietf-dkim-base-10) and verification may fail for
older versions.  If you are using Port25's PowerMTA, you need to use
version 3.2r11 or later to get a compatible version of DKIM.


==========================================================
Original Email
==========================================================

Return-Path: <updates@flyawaysimulation.com>
Received: from web3.rbftpnetworks.net (195.224.144.101) by verifier.port25.com id h3d30c11u9cb for <check-auth-ryan=rbftpnetworks.com@verifier.port25.com>; Thu, 18 Sep 2014 16:52:22 -0400 (envelope-from <updates@flyawaysimulation.com>)
Authentication-Results: verifier.port25.com; spf=pass smtp.mailfrom=updates@flyawaysimulation.com
Authentication-Results: verifier.port25.com; domainkeys=neutral (message not signed) header.From=updates@flyawaysimulation.com
Authentication-Results: verifier.port25.com; dkim=fail (wrong body hash: expected nb2kCq5nNBE+IfyLiAIH9t/9x7Kk5PpCb+1GdO/wiJ8=) 
Authentication-Results: verifier.port25.com; sender-id=pass header.From=updates@flyawaysimulation.com
Received: by web3.rbftpnetworks.net (Postfix, from userid 70)
    id 014C83E2B53F; Thu, 18 Sep 2014 21:52:19 +0100 (BST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple;
    d=flyawaysimulation.com; s=mail; t=1411073540;
    bh=XMTdnEvx/N4aZB10KoQqWOQW+MUVFvU66kqiSqm0XKc=;
    h=To:Subject:Date:From:Reply-To:List-Help:List-Unsubscribe:
     List-Subscribe:List-Owner;
    b=OXitjsekFORKng9NPtJ7GSrKROUf+EGj/zetZ7ZoXWGeZerr2+IUNFgSZcNPjub5M
     VazJtwOMRZ5g7r6SrUWjPfkpDH6nt3qecOW2E000ftsWwv78wPtD4mc0OIN/IsY52h
     vk+mbHrQb4ToUHmxIGRIfB/NOdDiXG7Gp+aVrgRY=
To: check-auth-ryan=rbftpnetworks.com@verifier.port25.com
Subject: Test 123
Received: from host81-138-131-190.in-addr.btopenworld.com [81.138.131.190] by flyawaysimulation.com with HTTP; Thu, 18 Sep 2014 21:52:19 +0100
Date: Thu, 18 Sep 2014 21:52:19 +0100
From: Fly Away Simulation <updates@flyawaysimulation.com>
Reply-To: Fly Away Simulation <updates@flyawaysimulation.com>
Message-ID: <b4a02db1226bc348457a47d51e902619@flyawaysimulation.com>
X-Priority: 3
X-Mailer: PHPMailer 5.2.5 (https://github.com/Synchro/PHPMailer/)
X-phpList-version: 3.0.7
X-MessageID: 8
X-ListMember: check-auth-ryan=rbftpnetworks.com@verifier.port25.com
Precedence: bulk
Bounces-To: updates@flyawaysimulation.com
List-Help: <https://flyawaysimulation.com/lists/?p=preferences&uid=1e629246241f8e9714134ee8076ad406>
List-Unsubscribe: <https://flyawaysimulation.com/lists/?p=unsubscribe&uid=1e629246241f8e9714134ee8076ad406&jo=1>
List-Subscribe: <https://flyawaysimulation.com/lists/?p=subscribe>
List-Owner: <mailto:abuse@flyawaysimulation.com>
MIME-Version: 1.0
Content-Type: multipart/alternative;
    boundary="b1_b4a02db1226bc348457a47d51e902619"

--b1_b4a02db1226bc348457a47d51e902619
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

 test 123







 =20



--b1_b4a02db1226bc348457a47d51e902619
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<html><head>=0A        <meta content=3D"text/html;charset=3DUTF-8" http-equ=

iv=3D"Content-Type">=0A        <title></title></head><body><p>&nbsp;test 12=

3</p>=0A<img src=3D"https://flyawaysimulation.com/lists/ut.php?u=3D1e629246=

241f8e9714134ee8076ad406&amp;m=3D8" width=3D"1" height=3D"1" border=3D"0" /=

> </body></html>


--b1_b4a02db1226bc348457a47d51e902619--

phpMailer version 5.2.5 (packaged with phpList) phpMailer版本5.2.5(与phpList打包)

UPDATE: We can pass the DKIM verification check on Port25's tester if we enable "FixCRLF yes" in the opendkim config. 更新:如果我们在opendkim配置中启用了“ FixCRLF yes” ,则可以通过Port25测试仪上的DKIM验证检查。 However, this still FAILS Gmail DKIM verification. 但是,这仍然无法通过 Gmail DKIM验证。

Test output of passed message with "FixCRLF yes": 使用“ FixCRLF yes”测试通过的消息的输出:

==========================================================
Summary of Results
==========================================================
SPF check:          pass
DomainKeys check:   neutral
DKIM check:         pass
Sender-ID check:    pass
SpamAssassin check: ham


----------------------------------------------------------
DomainKeys check details:
----------------------------------------------------------
Result:         neutral (message not signed)
ID(s) verified: header.From=updates@flyawaysimulation.com
DNS record(s):

----------------------------------------------------------
DKIM check details:
----------------------------------------------------------
Result:         pass (matches From: updates@flyawaysimulation.com)
ID(s) verified: header.d=flyawaysimulation.com
Canonicalized Headers:
    to:check-auth-ryan=rbftpnetworks.com@verifier.port25.com'0D''0A'
    subject:Test'20'123'0D''0A'
    date:Sun,'20'21'20'Sep'20'2014'20'15:57:46'20'+0100'0D''0A'
    from:Fly'20'Away'20'Simulation'20'<updates@flyawaysimulation.com>'0D''0A'
    reply-to:Fly'20'Away'20'Simulation'20'<updates@flyawaysimulation.com>'0D''0A'
    list-help:<https://flyawaysimulation.com/lists/?p=preferences&uid=1e629246241f8e9714134ee8076ad406>'0D''0A'
    list-unsubscribe:<https://flyawaysimulation.com/lists/?p=unsubscribe&uid=1e629246241f8e9714134ee8076ad406&jo=1>'0D''0A'
    list-subscribe:<https://flyawaysimulation.com/lists/?p=subscribe>'0D''0A'
    list-owner:<mailto:abuse@flyawaysimulation.com>'0D''0A'
    dkim-signature:v=1;'20'a=rsa-sha256;'20'c=relaxed/simple;'20'd=flyawaysimulation.com;'20's=mail;'20't=1411311466;'20'bh=PUR9ib4HOSSj9G3jmXSCyzc1LAtqQeyWPSAii67TLd8=;'20'h=To:Subject:Date:From:Reply-To:List-Help:List-Unsubscribe:'20'List-Subscribe:List-Owner;'20'b=

Canonicalized Body:
    --b1_4ecb49f93b720bc688fe3bcdcafed5b0'0D''0A'
    Content-Type:'20'text/plain;'20'charset=UTF-8'0D''0A'
    Content-Transfer-Encoding:'20'quoted-printable'0D''0A'
    '0D''0A'
    '20'test'20'123'0D''0A'
    '0D''0A'
    '0D''0A'
    '0D''0A'
    '0D''0A'
    '0D''0A'
    '0D''0A'
    '0D''0A'
    '20'=20'0D''0A'
    '0D''0A'
    '0D''0A'
    '0D''0A'
    --b1_4ecb49f93b720bc688fe3bcdcafed5b0'0D''0A'
    Content-Type:'20'text/html;'20'charset=UTF-8'0D''0A'
    Content-Transfer-Encoding:'20'quoted-printable'0D''0A'
    '0D''0A'
    <html><head>=0A'20''20''20''20''20''20''20''20'<meta'20'content=3D"text/html;charset=3DUTF-8"'20'http-equ='0D''0A'
    '0D''0A'
    iv=3D"Content-Type">=0A'20''20''20''20''20''20''20''20'<title></title></head><body><p>&nbsp;test'20'12='0D''0A'
    '0D''0A'
    3</p>=0A<img'20'src=3D"https://flyawaysimulation.com/lists/ut.php?u=3D1e629246='0D''0A'
    '0D''0A'
    241f8e9714134ee8076ad406&amp;m=3D8"'20'width=3D"1"'20'height=3D"1"'20'border=3D"0"'20'/='0D''0A'
    '0D''0A'
    ></body></html>'0D''0A'
    '0D''0A'
    '0D''0A'
    --b1_4ecb49f93b720bc688fe3bcdcafed5b0--'0D''0A'


DNS record(s):
    mail._domainkey.flyawaysimulation.com. 3600 IN TXT "v=DKIM1;p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDimrx9MV1sFyUCVPeH6SFMBy7Cb2AU6aB9i3GazP7QKWG5pWWkFEurFImNbwi4wKz6dtKQeEkcGzPdzyeD+hXaSG2sl86T4pnwIxUaBMlW+FWfaNx0XPphacPAYjtkJGVoZGmmIbK3tH8HLZqdCEy6YIKd0kNSXQqFEMQseHaR6wIDAQAB"

Public key used for verification: mail._domainkey.flyawaysimulation.com (1024 bits)

NOTE: DKIM checking has been performed based on the latest DKIM specs
(RFC 4871 or draft-ietf-dkim-base-10) and verification may fail for
older versions.  If you are using Port25's PowerMTA, you need to use
version 3.2r11 or later to get a compatible version of DKIM.




==========================================================
Original Email
==========================================================

Return-Path: <updates@flyawaysimulation.com>
Received: from web3.rbftpnetworks.net (195.224.144.101) by verifier.port25.com id h3rjmm11u9c1 for <check-auth-ryan=rbftpnetworks.com@verifier.port25.com>; Sun, 21 Sep 2014 10:57:47 -0400 (envelope-from <updates@flyawaysimulation.com>)
Authentication-Results: verifier.port25.com; spf=pass smtp.mailfrom=updates@flyawaysimulation.com
Authentication-Results: verifier.port25.com; domainkeys=neutral (message not signed) header.From=updates@flyawaysimulation.com
Authentication-Results: verifier.port25.com; dkim=pass (matches From: updates@flyawaysimulation.com) header.d=flyawaysimulation.com
Authentication-Results: verifier.port25.com; sender-id=pass header.From=updates@flyawaysimulation.com
Received: by web3.rbftpnetworks.net (Postfix, from userid 70)
    id CDAD13E6DCB8; Sun, 21 Sep 2014 15:57:46 +0100 (BST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple;
    d=flyawaysimulation.com; s=mail; t=1411311466;
    bh=PUR9ib4HOSSj9G3jmXSCyzc1LAtqQeyWPSAii67TLd8=;
    h=To:Subject:Date:From:Reply-To:List-Help:List-Unsubscribe:
     List-Subscribe:List-Owner;
    b=skviRyhjPtB8aaRzLKyzkjay3Qk+Z5AOGg4Ue/Dk62SgvP1aZnf3kL1lCSWiwO1rI
     VKYmMzzspbKLxMVrZ0yXO0s4wx5u9EFNw4eJMNh6fKCimiNwEoSGQRkJcjNb7wA9nG
     38/FjbPIkvRyx1+hxgL9QOP3iSGv9w3X0UAFUmmc=
To: check-auth-ryan=rbftpnetworks.com@verifier.port25.com
Subject: Test 123
Received: from host81-138-131-190.in-addr.btopenworld.com [81.138.131.190] by flyawaysimulation.com with HTTP; Sun, 21 Sep 2014 15:57:46 +0100
Date: Sun, 21 Sep 2014 15:57:46 +0100
From: Fly Away Simulation <updates@flyawaysimulation.com>
Reply-To: Fly Away Simulation <updates@flyawaysimulation.com>
Message-ID: <4ecb49f93b720bc688fe3bcdcafed5b0@flyawaysimulation.com>
X-Priority: 3
X-Mailer: PHPMailer 5.2.5 (https://github.com/Synchro/PHPMailer/)
X-phpList-version: 3.0.7
X-MessageID: 8
X-ListMember: check-auth-ryan=rbftpnetworks.com@verifier.port25.com
Precedence: bulk
Bounces-To: updates@flyawaysimulation.com
List-Help: <https://flyawaysimulation.com/lists/?p=preferences&uid=1e629246241f8e9714134ee8076ad406>
List-Unsubscribe: <https://flyawaysimulation.com/lists/?p=unsubscribe&uid=1e629246241f8e9714134ee8076ad406&jo=1>
List-Subscribe: <https://flyawaysimulation.com/lists/?p=subscribe>
List-Owner: <mailto:abuse@flyawaysimulation.com>
MIME-Version: 1.0
Content-Type: multipart/alternative;
    boundary="b1_4ecb49f93b720bc688fe3bcdcafed5b0"

--b1_4ecb49f93b720bc688fe3bcdcafed5b0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

 test 123







 =20



--b1_4ecb49f93b720bc688fe3bcdcafed5b0
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<html><head>=0A        <meta content=3D"text/html;charset=3DUTF-8" http-equ=

iv=3D"Content-Type">=0A        <title></title></head><body><p>&nbsp;test 12=

3</p>=0A<img src=3D"https://flyawaysimulation.com/lists/ut.php?u=3D1e629246=

241f8e9714134ee8076ad406&amp;m=3D8" width=3D"1" height=3D"1" border=3D"0" /=

> </body></html>


--b1_4ecb49f93b720bc688fe3bcdcafed5b0--

Same message sent to Gmail: 发送给Gmail的邮件相同:

Delivered-To: ****
Received: by 10.170.191.196 with SMTP id i187csp139225yke;
        Sun, 21 Sep 2014 08:05:20 -0700 (PDT)
X-Received: by 10.194.134.100 with SMTP id pj4mr14856269wjb.72.1411311920538;
        Sun, 21 Sep 2014 08:05:20 -0700 (PDT)
Return-Path: <updates@flyawaysimulation.com>
Received: from web3.rbftpnetworks.net (web3.rbftpnetworks.net. [195.224.144.101])
        by mx.google.com with ESMTP id db4si8324616wib.100.2014.09.21.08.05.20
        for <****>;
        Sun, 21 Sep 2014 08:05:20 -0700 (PDT)
Received-SPF: pass (google.com: domain of updates@flyawaysimulation.com designates 195.224.144.101 as permitted sender) client-ip=195.224.144.101;
Authentication-Results: mx.google.com;
       spf=pass (google.com: domain of updates@flyawaysimulation.com designates 195.224.144.101 as permitted sender) smtp.mail=updates@flyawaysimulation.com;
       dkim=neutral (body hash did not verify) header.i=@
Received: by web3.rbftpnetworks.net (Postfix, from userid 70)
    id E11B93E6E003; Sun, 21 Sep 2014 16:05:18 +0100 (BST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple;
    d=flyawaysimulation.com; s=mail; t=1411311919;
    bh=d40fzjdg7KnEX5wH3Ea2b1ZzoQMu8dzZyP1dYsxaoVc=;
    h=To:Subject:Date:From:Reply-To:List-Help:List-Unsubscribe:
     List-Subscribe:List-Owner;
    b=ub2LA6uRxpsgByD3RRUHqAGhlUu5d1gBgNadBBeaJdDP6pvSL/IX2Lzy6SqG2kGIK
     dU7YnOmI3w0frerJZRldlSAZduKUQqaT0QZHfvUZVJnLihK8EIZ7GkzX+6VVE2Pojm
     J8aVCq8fPOEuCG6mu2QdIUmpqkWO+s8bBYBYR6ro=
To: *****
Subject: Test 123
Received: from host81-138-131-190.in-addr.btopenworld.com [81.138.131.190] by flyawaysimulation.com with HTTP; Sun, 21 Sep 2014 16:05:18 +0100
Date: Sun, 21 Sep 2014 16:05:18 +0100
From: Fly Away Simulation <updates@flyawaysimulation.com>
Reply-To: Fly Away Simulation <updates@flyawaysimulation.com>
Message-ID: <8938d7bccca9e15cd846714ca4a01d04@flyawaysimulation.com>
X-Priority: 3
X-Mailer: PHPMailer 5.2.5 (https://github.com/Synchro/PHPMailer/)
X-phpList-version: 3.0.7
X-MessageID: 8
X-ListMember: ****
Precedence: bulk
Bounces-To: updates@flyawaysimulation.com
List-Help: <https://flyawaysimulation.com/lists/?p=preferences&uid=58f4e3c38a321901b99d714dd5f54850>
List-Unsubscribe: <https://flyawaysimulation.com/lists/?p=unsubscribe&uid=58f4e3c38a321901b99d714dd5f54850&jo=1>
List-Subscribe: <https://flyawaysimulation.com/lists/?p=subscribe>
List-Owner: <mailto:abuse@flyawaysimulation.com>
MIME-Version: 1.0
Content-Type: multipart/alternative;
    boundary="b1_8938d7bccca9e15cd846714ca4a01d04"

--b1_8938d7bccca9e15cd846714ca4a01d04
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

 test 123



 =20


--b1_8938d7bccca9e15cd846714ca4a01d04
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<html><head>=0A        <meta content=3D"text/html;charset=3DUTF-8" http-equ=
iv=3D"Content-Type">=0A        <title></title></head><body><p>&nbsp;test 12=
3</p>=0A<img src=3D"https://flyawaysimulation.com/lists/ut.php?u=3D58f4e3c3=
8a321901b99d714dd5f54850&amp;m=3D8" width=3D"1" height=3D"1" border=3D"0" /=
></body></html>


--b1_8938d7bccca9e15cd846714ca4a01d04--

I ran into the exact problem you are describing where [PlainText DKIM=pass] and [HTMLBody DKIM=fail] when sending to Gmail. 我遇到了确切的问题,您正在描述发送到Gmail时[PlainText DKIM = pass]和[HTMLBody DKIM = fail]的位置。 I'm using C# MailMessage and by default the body default character set is "us-ascii", which works fine for Text based emails, but not HTML ones. 我使用的是C# MailMessage ,默认情况下,正文默认字符集为“ us-ascii”,它适用于基于文本的电子邮件,但不适用于HTML电子邮件。 Default character set for Email Subject is UTF-8, so no need to set again. 电子邮件主题的默认字符集为UTF-8,因此无需再次设置。

When sending a HTML Email, you have to code the following parameter before sending: 发送HTML电子邮件时,必须在发送之前对以下参数进行编码:

Mailmessage.BodyEncoding = Encoding.UTF8;

After making this small change, Gmail registers my emails again and I receive a DKIM=pass; 进行了这一小更改后,Gmail再次注册了我的电子邮件,并且我收到了DKIM = pass; when I view the original source. 当我查看原始来源时。 Also these are the relevant headers 这些都是相关的标题

MIME-Version: 1.0
Content-Type: text/html; charset=utf-8
Content-Transfer-Encoding: base64
*followed by block of base64 body text*

Perhaps you can mimic the behavior using PHP, and maybe change yours from 也许您可以使用PHP模仿行为,或者从

Content-Transfer-Encoding: quoted-printable
to
Content-Transfer-Encoding: base64

There seems to be two problems: 似乎有两个问题:

  1. The body canonicalization done by the Port25 verifier is wrong. Port25验证程序执行的正文规范化是错误的。 At the end of the body is 在身体的尽头是
    > </body></html> . > </body></html> There the space is wrongly removed. 那里空间被错误地删除了。 Otherwise the canonicalization is correct. 否则,规范化是正确的。

  2. The body hash in the DKIM signature seems to be not the right one for the body received by Port25 (with two different DKIM verifiers I get the body hash gjpXaqduU+jpM3yh1hPT5jqMSJZjHzi4KqAGlCG0/M8= ). DKIM签名中的主体哈希似乎不适合Port25接收的主体(使用两个不同的DKIM验证程序,我得到主体哈希gjpXaqduU+jpM3yh1hPT5jqMSJZjHzi4KqAGlCG0/M8= )。 This could be caused by either the message being altered after signing or an error in the signing process. 这可能是由于签名后消息被更改或签名过程中的错误引起的。 Enable KeepTemporaryFiles in opendkim to see the body canonicalization done by opendkim and compare it with the one from Port25 (remember the wrongly removed space). 在opendkim中启用KeepTemporaryFiles以查看opendkim完成的正文规范化并将其与Port25中的规范进行比较(记住错误删除的空间)。 Lock also at the source of the sent message if possible and try to see and difference between the send and received body. 如果可能,也锁定发送消息的源,并尝试查看发送和接收的正文之间的区别。

Update : Comments on the messages with FixCRLF enabled: 更新 :对启用了FixCRLF的消息的评论:

phpList seems to generate emails which contains different line endings then CRLFs, which are the only ones allowed in an e-mail. phpList似乎生成的电子邮件包含与CRLF不同的行结尾,CRLF是电子邮件中唯一允许的行末。 Normally this isn't a problem, but as you can see it can cause problems with DKIM, as different line endings produces different hashes. 通常这不是问题,但是如您所见,这可能会导致DKIM出现问题,因为不同的行尾会产生不同的哈希值。

message with "FixCRLF yes" to Port25: 带有“ FixCRLF yes”的消息到端口25:

opendkim seems to have a bug in it's canonicalization algorithm. opendkim的规范化算法似乎有一个错误。 The line > </body></html> in the message to Port25 is wrongly canalized to ></body></html> (the space is removed). 发送给Port25的消息中的> </body></html>行错误地插入了></body></html> (空格已删除)。 As the verifier in Port25 has the same bug (as it's probably also using opendkim) the signature is wrongly shown as valid by Port25. 由于Port25中的验证程序存在相同的错误(可能还使用了opendkim),因此Port25错误地将签名显示为有效。

This seems not to be the reason for the failure of the message send to gmail, but could cause trouble in the future if messages are send to a receiver which is using a different verifier then opendkim. 这似乎不是导致邮件发送到gmail失败的原因,但是如果将来将邮件发送到使用其他验证程序而不是opendkim的接收方,则将来可能会引起麻烦。 Best report this problem to them. 最好向他们报告此问题。 In the meantime you could remove the space yourself before sending the message. 同时,您可以在发送消息之前自行删除空间。

message with "FixCRLF yes" to gmail: 邮件“ FixCRLF yes”发送到gmail:

The e-mail received by gmail has less line breaks then the ones received from Port25. gmail收到的电子邮件的换行符少于从Port25收到的换行符。 So unless the send messages are already different, the message was altered. 因此,除非发送消息已经不同,否则消息已更改。 Enable the "KeepTemporaryFiles" option in opendkim to see the body signed by opendkim. 在opendkim中启用“ KeepTemporaryFiles”选项,以查看由opendkim签名的正文。

Not a great answer maybe, but I solved this problem by using Amavis instead of opendkim. 也许不是一个很好的答案,但是我通过使用Amavis而不是opendkim解决了这个问题。 Make sure you disable opendkim because double signing is not allowed. 确保禁用opendkim,因为不允许双重签名。

This is the manual I used: http://gogs.info/books/debian-mail/chunked/antispam.dkim.html 这是我使用的手册: http : //gogs.info/books/debian-mail/chunked/antispam.dkim.html

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM