Signing-milter/SMIME - 这封电子邮件是如何被错误签名的?

Signing-milter/SMIME - 这封电子邮件是如何被错误签名的?

我对签名-milter 有疑问(http://www.signing-milter.org)。问题是 -b 标志是必需的,并且不建议使用 -b 标志,因为它会输出不符合 RFC 的电子邮件。但是,删除 -b 标志会导致邮件无法验证 S/MIME,并显示错误消息“内容被篡改”。-b 标志的描述如下:

Causes signing-milter to not break headerlines after a ; Header
              lines  moved  inside  a mime-container while signing must not be
              longer then 76 characters. This switch  disables  the  autobreak
              before signing.

我尝试过只运行签名过滤器,也尝试过通过使用 MIME::Parser 解析邮件,然后从头开始重建电子邮件,从而“清除”邮件中的任何 RFC 错误。但仍然有些问题。以下邮件没有使用“清除”过滤器。


以下邮件使用以下命令正确签名:

signing-milter -g postfix -m /var/secure_files/cert/signers.cdb -s inet:9991 -t 60 -u postfix –b &>/dev/null </dev/null &

它将导致以下邮件被正确验证:

Return-Path: <[email protected]>
X-Original-To: [email protected]
Delivered-To: [email protected]
Received: from Bangatan601 (unknown [192.168.2.3])
    by dns1.sebbe.eu (Postfix) with SMTP id E61E74C01D1
    for <[email protected]>; Wed, 25 Feb 2015 11:12:41 +0100 (CET)
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=sebbe.eu; s=root;
    t=1424859168; bh=0JJ2CUrz7gs1slXbxbBt0gped0s3PEJ2R6vh4blyqTQ=;
    h=From:To:Subject:Date:From;
    b=bxDrSPc8mTl7jSpHYlc3lDgPywm71Y8nnHFccVllB8yd8tYGh3lkPEQZhGxTTz+sn
     iR8cto0qyBEZM8qNfgQSVD0a2jXdM38/VNB6G49Au252CZ6IsjfQdY9LFkdl7WudXt
     YgYQ5Pnj59kCp4GSacRPHlwxQwZCT3hxwF5VcoPc=
Message-ID: <B385DB0CB2F144BFA9FE47A007A6B077@Bangatan601>
From: "Sebastian Nielsen" <[email protected]>
To: <[email protected]>
Subject: test
Date: Wed, 25 Feb 2015 11:12:39 +0100
MIME-Version: 1.0
X-Priority: 3
X-MSMail-Priority: Normal
Importance: Normal
X-Mailer: Microsoft Windows Live Mail 16.4.3528.331
X-MimeOLE: Produced By Microsoft MimeOLE V16.4.3528.331
X-Hashcash: 1:26:150225:[email protected]::NrJAmsa7evEzktIr:000000000000000000000000000000000000000001h79K
Content-Type: multipart/signed; protocol="application/pkcs7-signature"; micalg="sha-256"; boundary="----162A57F1542DDFAD76008518F14459BD"

This is an S/MIME signed message

------162A57F1542DDFAD76008518F14459BD
Content-Type: multipart/alternative; boundary="----=_NextPart_000_0019_01D050EB.F7C76180"

------=_NextPart_000_0019_01D050EB.F7C76180
Content-Type: text/plain;
    charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

test
------=_NextPart_000_0019_01D050EB.F7C76180
Content-Type: text/html;
    charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

<HTML><HEAD></HEAD>
<BODY dir=3Dltr>
<DIV dir=3Dltr>
<DIV style=3D"FONT-SIZE: 12pt; FONT-FAMILY: 'Calibri'; COLOR: #000000">
<DIV>test</DIV></DIV></DIV></BODY></HTML>

------=_NextPart_000_0019_01D050EB.F7C76180--

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

MIIJCwYJKoZIhvcNAQcCoIII/DCCCPgCAQExDzANBglghkgBZQMEAgEFADALBgkq
hkiG9w0BBwGgggYoMIIGJDCCBQygAwIBAgIDDQ+TMA0GCSqGSIb3DQEBCwUAMIGM
MQswCQYDVQQGEwJJTDEWMBQGA1UEChMNU3RhcnRDb20gTHRkLjErMCkGA1UECxMi
U2VjdXJlIERpZ2l0YWwgQ2VydGlmaWNhdGUgU2lnbmluZzE4MDYGA1UEAxMvU3Rh
cnRDb20gQ2xhc3MgMSBQcmltYXJ5IEludGVybWVkaWF0ZSBDbGllbnQgQ0EwHhcN
MTUwMjIxMDg0NDM2WhcNMTYwMjIyMDE0NjQxWjBAMRswGQYDVQQDDBJzZWJhc3Rp
YW5Ac2ViYmUuZXUxITAfBgkqhkiG9w0BCQEWEnNlYmFzdGlhbkBzZWJiZS5ldTCC
ASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAM94fjNc4NN9VBqH8GkjKyMO
FvI2XfES1ptIN4ZG5Y1NIhmcqmH7QYveXP5H+fs2LiGALMYQlXY6QaM28q1r4mCY
ex9x68ahlzRMx9HuTujfyrj4ifusWU0rISJgPcVbuKvP4JH8Jf20ToCeyZIQNRyK
oUwBQvbeMbctXD7LYrOrEcEdcKlKwexGnxibd67kJGU0JUxR+p5lDBCFxZCKoTgj
3edLWqI8OjSDK/wXkF12alEBIsNEHcZ1l66sIz7+Jbm0j5rYR+fjuLxL5UgecfeN
PwlWDL/wZ1dUx7RBajAAQvkdF7oFCcdzhnOdXf/rCDgOExWvsQwTziu0W6KQySkC
AwEAAaOCAtgwggLUMAkGA1UdEwQCMAAwCwYDVR0PBAQDAgSwMB0GA1UdJQQWMBQG
CCsGAQUFBwMCBggrBgEFBQcDBDAdBgNVHQ4EFgQUUybj3MhjLg2ZqpTQoQqHa3M3
BvgwHwYDVR0jBBgwFoAUU3Ltkpzg2ssBXHx+ljVO8tS4UYIwHQYDVR0RBBYwFIES
c2ViYXN0aWFuQHNlYmJlLmV1MIIBTAYDVR0gBIIBQzCCAT8wggE7BgsrBgEEAYG1
NwECAzCCASowLgYIKwYBBQUHAgEWImh0dHA6Ly93d3cuc3RhcnRzc2wuY29tL3Bv
bGljeS5wZGYwgfcGCCsGAQUFBwICMIHqMCcWIFN0YXJ0Q29tIENlcnRpZmljYXRp
b24gQXV0aG9yaXR5MAMCAQEagb5UaGlzIGNlcnRpZmljYXRlIHdhcyBpc3N1ZWQg
YWNjb3JkaW5nIHRvIHRoZSBDbGFzcyAxIFZhbGlkYXRpb24gcmVxdWlyZW1lbnRz
IG9mIHRoZSBTdGFydENvbSBDQSBwb2xpY3ksIHJlbGlhbmNlIG9ubHkgZm9yIHRo
ZSBpbnRlbmRlZCBwdXJwb3NlIGluIGNvbXBsaWFuY2Ugb2YgdGhlIHJlbHlpbmcg
cGFydHkgb2JsaWdhdGlvbnMuMDYGA1UdHwQvMC0wK6ApoCeGJWh0dHA6Ly9jcmwu
c3RhcnRzc2wuY29tL2NydHUxLWNybC5jcmwwgY4GCCsGAQUFBwEBBIGBMH8wOQYI
KwYBBQUHMAGGLWh0dHA6Ly9vY3NwLnN0YXJ0c3NsLmNvbS9zdWIvY2xhc3MxL2Ns
aWVudC9jYTBCBggrBgEFBQcwAoY2aHR0cDovL2FpYS5zdGFydHNzbC5jb20vY2Vy
dHMvc3ViLmNsYXNzMS5jbGllbnQuY2EuY3J0MCMGA1UdEgQcMBqGGGh0dHA6Ly93
d3cuc3RhcnRzc2wuY29tLzANBgkqhkiG9w0BAQsFAAOCAQEAEXThDfGRB/+ABR2c
fGNa4Bol8hLR9MtpjYayTps7KCNZUEm05kBGjtMZkhOLUfxjXkyF5bWdPiUdnWmL
O1i4rNLtRIfJlP9lVlqJGjp6x5tILb2y57b75xP95yCZeQZXUQ0315hK7lx58MLh
dXj0jrDMVN6A5f9G/KIGfXEeHKL+X4+UTtvGGQaowFilEPQ/gPPb6o5FYz+PBbbx
dhOpxQ+TuX1vivKpCndYsx17tfN+y3/m7pnhIeQbUR6LKSX89JFJnLvEWT59nGCn
AHM2d53h1XHK+xPWpSpqLjVMtlLyHOIT73tEqh+56Zlwz3A25647adJC+ec3y5hB
r6hQTTGCAqcwggKjAgEBMIGUMIGMMQswCQYDVQQGEwJJTDEWMBQGA1UEChMNU3Rh
cnRDb20gTHRkLjErMCkGA1UECxMiU2VjdXJlIERpZ2l0YWwgQ2VydGlmaWNhdGUg
U2lnbmluZzE4MDYGA1UEAxMvU3RhcnRDb20gQ2xhc3MgMSBQcmltYXJ5IEludGVy
bWVkaWF0ZSBDbGllbnQgQ0ECAw0PkzANBglghkgBZQMEAgEFAKCB5DAYBgkqhkiG
9w0BCQMxCwYJKoZIhvcNAQcBMBwGCSqGSIb3DQEJBTEPFw0xNTAyMjUxMDEyNDha
MC8GCSqGSIb3DQEJBDEiBCDUzXsP6GT4VlvqAsueiMMWtHZPDcm743OisWwhmsFp
QzB5BgkqhkiG9w0BCQ8xbDBqMAsGCWCGSAFlAwQBKjALBglghkgBZQMEARYwCwYJ
YIZIAWUDBAECMAoGCCqGSIb3DQMHMA4GCCqGSIb3DQMCAgIAgDANBggqhkiG9w0D
AgIBQDAHBgUrDgMCBzANBggqhkiG9w0DAgIBKDANBgkqhkiG9w0BAQEFAASCAQAd
3BNZCzPw4C4fCMSIuXmmQDnXV+8gdqCNwdRVQSkgbsC9laZU6/+gbTJGb/W/aZAn
JdaM1ZxiObIdntUVdXO57TDFK8c3fJc591mjzKoewUUYYL2VHkwwZWMM75t+jvX8
lwOqDJu81q50xIsBAbWOXjwz4u3ZsLrG98a/RPBJfFeNgDchqeODTFGPktvzvrXr
UQDa6Vf10hyMZqeXl8r3O3/hI0rhq/KE3WA2k3U2PBebTsC7NWScxGVayBcNlEjl
1XPubdjG5T0o1KP9sQqA+yIqGfkpR0mCuO8HEF16hPOeTxodW3kBMyfXc7WYJxAp
CcshMBM62XZFtkQmNvT9

------162A57F1542DDFAD76008518F14459BD--

但是,如果我从 signature-milter 中删除 -b 标志,它将被签名如下:

signing-milter -g postfix -m /var/secure_files/cert/signers.cdb -s inet:9991 -t 60 -u postfix &>/dev/null </dev/null &

其结果是:

Return-Path: <[email protected]>
X-Original-To: [email protected]
Delivered-To: [email protected]
Received: from Bangatan601 (unknown [192.168.2.3])
    by dns1.sebbe.eu (Postfix) with SMTP id 6CDFD4C0969
    for <[email protected]>; Wed, 25 Feb 2015 10:58:00 +0100 (CET)
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=sebbe.eu; s=root;
    t=1424858297; bh=g681Ani3vbnBMVPvXfhl81tk5PAU2QiaQD7wU8Opt0s=;
    h=From:To:Subject:Date:From;
    b=X4bAU3CenDkFk45IUztPl3sYkEWvOGphwAPBtGbdmtlUQ5Z5Faf1l/7B7Uz+J2lOu
     tdyWgsJ4rHJk0+ZC+R/GxShyc8H9tPyUpinR9psIJJG4bHFmbkcoeykTMCzootnOxO
     +GpHHPUHCwxaqBMDMfOKXgos691KZi++1LRsYThI=
Message-ID: <AA66989B33FB47379BEAE4365DE5394E@Bangatan601>
From: "Sebastian Nielsen" <[email protected]>
To: <[email protected]>
Subject: test
Date: Wed, 25 Feb 2015 10:57:53 +0100
MIME-Version: 1.0
X-Priority: 3
X-MSMail-Priority: Normal
Importance: Normal
X-Mailer: Microsoft Windows Live Mail 16.4.3528.331
X-MimeOLE: Produced By Microsoft MimeOLE V16.4.3528.331
X-Hashcash: 1:26:150225:[email protected]::DwuKWYWY2MN+ZUXB:000000000000000000000000000000000000000003yEF8
Content-Type: multipart/signed;
    protocol="application/pkcs7-signature";
    micalg="sha-256";
    boundary="----FD52A1653AA3980B5C0A3BE3D9993FAB"

This is an S/MIME signed message

------FD52A1653AA3980B5C0A3BE3D9993FAB
Content-Type: multipart/alternative;
    boundary="----=_NextPart_000_0007_01D050E9.E7B05740"

------=_NextPart_000_0007_01D050E9.E7B05740
Content-Type: text/plain;
    charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

test
------=_NextPart_000_0007_01D050E9.E7B05740
Content-Type: text/html;
    charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

<HTML><HEAD></HEAD>
<BODY dir=3Dltr>
<DIV dir=3Dltr>
<DIV style=3D"FONT-SIZE: 12pt; FONT-FAMILY: 'Calibri'; COLOR: #000000">
<DIV>test</DIV></DIV></DIV></BODY></HTML>

------=_NextPart_000_0007_01D050E9.E7B05740--

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

MIIJCwYJKoZIhvcNAQcCoIII/DCCCPgCAQExDzANBglghkgBZQMEAgEFADALBgkq
hkiG9w0BBwGgggYoMIIGJDCCBQygAwIBAgIDDQ+TMA0GCSqGSIb3DQEBCwUAMIGM
MQswCQYDVQQGEwJJTDEWMBQGA1UEChMNU3RhcnRDb20gTHRkLjErMCkGA1UECxMi
U2VjdXJlIERpZ2l0YWwgQ2VydGlmaWNhdGUgU2lnbmluZzE4MDYGA1UEAxMvU3Rh
cnRDb20gQ2xhc3MgMSBQcmltYXJ5IEludGVybWVkaWF0ZSBDbGllbnQgQ0EwHhcN
MTUwMjIxMDg0NDM2WhcNMTYwMjIyMDE0NjQxWjBAMRswGQYDVQQDDBJzZWJhc3Rp
YW5Ac2ViYmUuZXUxITAfBgkqhkiG9w0BCQEWEnNlYmFzdGlhbkBzZWJiZS5ldTCC
ASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAM94fjNc4NN9VBqH8GkjKyMO
FvI2XfES1ptIN4ZG5Y1NIhmcqmH7QYveXP5H+fs2LiGALMYQlXY6QaM28q1r4mCY
ex9x68ahlzRMx9HuTujfyrj4ifusWU0rISJgPcVbuKvP4JH8Jf20ToCeyZIQNRyK
oUwBQvbeMbctXD7LYrOrEcEdcKlKwexGnxibd67kJGU0JUxR+p5lDBCFxZCKoTgj
3edLWqI8OjSDK/wXkF12alEBIsNEHcZ1l66sIz7+Jbm0j5rYR+fjuLxL5UgecfeN
PwlWDL/wZ1dUx7RBajAAQvkdF7oFCcdzhnOdXf/rCDgOExWvsQwTziu0W6KQySkC
AwEAAaOCAtgwggLUMAkGA1UdEwQCMAAwCwYDVR0PBAQDAgSwMB0GA1UdJQQWMBQG
CCsGAQUFBwMCBggrBgEFBQcDBDAdBgNVHQ4EFgQUUybj3MhjLg2ZqpTQoQqHa3M3
BvgwHwYDVR0jBBgwFoAUU3Ltkpzg2ssBXHx+ljVO8tS4UYIwHQYDVR0RBBYwFIES
c2ViYXN0aWFuQHNlYmJlLmV1MIIBTAYDVR0gBIIBQzCCAT8wggE7BgsrBgEEAYG1
NwECAzCCASowLgYIKwYBBQUHAgEWImh0dHA6Ly93d3cuc3RhcnRzc2wuY29tL3Bv
bGljeS5wZGYwgfcGCCsGAQUFBwICMIHqMCcWIFN0YXJ0Q29tIENlcnRpZmljYXRp
b24gQXV0aG9yaXR5MAMCAQEagb5UaGlzIGNlcnRpZmljYXRlIHdhcyBpc3N1ZWQg
YWNjb3JkaW5nIHRvIHRoZSBDbGFzcyAxIFZhbGlkYXRpb24gcmVxdWlyZW1lbnRz
IG9mIHRoZSBTdGFydENvbSBDQSBwb2xpY3ksIHJlbGlhbmNlIG9ubHkgZm9yIHRo
ZSBpbnRlbmRlZCBwdXJwb3NlIGluIGNvbXBsaWFuY2Ugb2YgdGhlIHJlbHlpbmcg
cGFydHkgb2JsaWdhdGlvbnMuMDYGA1UdHwQvMC0wK6ApoCeGJWh0dHA6Ly9jcmwu
c3RhcnRzc2wuY29tL2NydHUxLWNybC5jcmwwgY4GCCsGAQUFBwEBBIGBMH8wOQYI
KwYBBQUHMAGGLWh0dHA6Ly9vY3NwLnN0YXJ0c3NsLmNvbS9zdWIvY2xhc3MxL2Ns
aWVudC9jYTBCBggrBgEFBQcwAoY2aHR0cDovL2FpYS5zdGFydHNzbC5jb20vY2Vy
dHMvc3ViLmNsYXNzMS5jbGllbnQuY2EuY3J0MCMGA1UdEgQcMBqGGGh0dHA6Ly93
d3cuc3RhcnRzc2wuY29tLzANBgkqhkiG9w0BAQsFAAOCAQEAEXThDfGRB/+ABR2c
fGNa4Bol8hLR9MtpjYayTps7KCNZUEm05kBGjtMZkhOLUfxjXkyF5bWdPiUdnWmL
O1i4rNLtRIfJlP9lVlqJGjp6x5tILb2y57b75xP95yCZeQZXUQ0315hK7lx58MLh
dXj0jrDMVN6A5f9G/KIGfXEeHKL+X4+UTtvGGQaowFilEPQ/gPPb6o5FYz+PBbbx
dhOpxQ+TuX1vivKpCndYsx17tfN+y3/m7pnhIeQbUR6LKSX89JFJnLvEWT59nGCn
AHM2d53h1XHK+xPWpSpqLjVMtlLyHOIT73tEqh+56Zlwz3A25647adJC+ec3y5hB
r6hQTTGCAqcwggKjAgEBMIGUMIGMMQswCQYDVQQGEwJJTDEWMBQGA1UEChMNU3Rh
cnRDb20gTHRkLjErMCkGA1UECxMiU2VjdXJlIERpZ2l0YWwgQ2VydGlmaWNhdGUg
U2lnbmluZzE4MDYGA1UEAxMvU3RhcnRDb20gQ2xhc3MgMSBQcmltYXJ5IEludGVy
bWVkaWF0ZSBDbGllbnQgQ0ECAw0PkzANBglghkgBZQMEAgEFAKCB5DAYBgkqhkiG
9w0BCQMxCwYJKoZIhvcNAQcBMBwGCSqGSIb3DQEJBTEPFw0xNTAyMjUwOTU4MTda
MC8GCSqGSIb3DQEJBDEiBCAh+/oOeBFGDqcr6FntbmDkiaNH7kwwQppeMWJq0oZa
OjB5BgkqhkiG9w0BCQ8xbDBqMAsGCWCGSAFlAwQBKjALBglghkgBZQMEARYwCwYJ
YIZIAWUDBAECMAoGCCqGSIb3DQMHMA4GCCqGSIb3DQMCAgIAgDANBggqhkiG9w0D
AgIBQDAHBgUrDgMCBzANBggqhkiG9w0DAgIBKDANBgkqhkiG9w0BAQEFAASCAQCq
rISJ8Fpsbc8GxCevwpmNHb6hMDe/mmcg1tmoCT6TJIz6tM690G0kOttL39cY1Qv8
zEYiNTcaKX94Fx7mJIUyGJasJuR9MdLhyAhvkgcJ3DiCqvmVhHbwsW/jl/WcIrM6
XLAGnMsroYTnp94SrJfLflCmQgXMTi0U+iTERnUs9bLsZ17adhQ7MavuEcze7Fcg
IIoF8awZkoLZnPYgiJT89GP3jq5KS3NtojRlycDAf99AoM2Q3dcUEUdrfX6fRy/k
3W18ihE7nmworE/u8F5yQMtMvZGhyRZlgGw2yhX7Cuev3E8sS9g/8tZB5ndU/Gzq
0GAvKNW+4OrtIjzrCc8n

------FD52A1653AA3980B5C0A3BE3D9993FAB--

这不成立。(错误信息:内容被篡改)。

以下是来自同一客户端(Windows Live Mail)的一封未签名的邮件,可用于追踪任何 RFC 错误:

From: "Sebastian Nielsen" <[email protected]>
To: <[email protected]>
Subject: test
Date: Mon, 2 Mar 2015 23:17:33 +0100
MIME-Version: 1.0
Content-Type: multipart/alternative;
    boundary="----=_NextPart_000_0005_01D0553F.10373AE0"
X-Priority: 3
X-MSMail-Priority: Normal
Importance: Normal
X-Mailer: Microsoft Windows Live Mail 16.4.3528.331
X-MimeOLE: Produced By Microsoft MimeOLE V16.4.3528.331

Det här är ett flerdelat meddelande i MIME-format.

------=_NextPart_000_0005_01D0553F.10373AE0
Content-Type: text/plain;
    charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

test
------=_NextPart_000_0005_01D0553F.10373AE0
Content-Type: text/html;
    charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

<HTML><HEAD></HEAD>
<BODY dir=3Dltr>
<DIV dir=3Dltr>
<DIV style=3D"FONT-SIZE: 12pt; FONT-FAMILY: 'Calibri'; COLOR: #000000">
<DIV>test</DIV></DIV></DIV></BODY></HTML>

------=_NextPart_000_0005_01D0553F.10373AE0--

问题是什么?我在 Postfix 用户列表上询问,得到的答案是输入不符合 RFC 标准,但具体是哪方面呢?(所以我可以在此之前添加内容过滤器来解决这个问题)。该邮件是由 Windows Live Mail 创建的。

答案1

我在 Outlook 2013 和 Outlook 2016 中看到了完全相同的行为,两者都错误地将经过签名的混合签名多部分邮件报告为已篡改,The Bat! v7 Professional(Windows)和 Mac Mail(El Capitan)会将相同的邮件报告为有效邮件吗?

该问题是由于邮件负载末尾的回车符 (CR) 或换行符 (LF) 或两者的组合 (CRLF) 过多造成的。

消息有效负载的结束意味着最终:

------=_NextPart_000_0005_01D0553F.10373AE0--

在您发布的未签名/原始消息中。

无论哪个客户端发送消息,Outlook 到 Outlook 都会失败,就像 Mac Mail 到 Outlook 一样。

看到您使用 Windows Live Mail,这让我认为这会影响所有使用 Windows 邮件和/或加密后端的邮件客户端。

您甚至可以通过使用 telnet/ncat 发送多部分消息来可靠地重现此情况...

因此,在此要澄清的是,我几乎 99% 确信您的邮件已使用有效证书正确签名。这只是微软的做法——再次——不同而已。

现在我不知道-b我确信 switch 在签名 milter 中内部做了操作,以确保在签名之前你的有效载荷被正确地转义。

“Did” 只是因为这个选项似乎在当前版本中被删除了(此处运行的是签名 milter 版本 20150308),它只输出

由于兼容性原因,选项 -b 被忽略,你可以安全地将其删除

当使用此参数执行时,邮件当然仍然无法在 Outlook 中验证。

因此,最明显的解决方法似乎是将邮件通过额外的过滤器进行过滤,然后再将其发送到签名过滤器。

由于我已经有了这样一个自定义的 milter(使用 libmilter 用 python 编写),我可以简单地采用我的代码来解决这个问题:

...
if mail.is_multipart():
    logging.debug("Stripping tailing line feeds (if any) from multi-part payload")
    new_body = new_body.rstrip()

workflow["repl_body"] = new_body
return workflow

因此 Outlook 终于不再无谓的抱怨了。

干杯

相关内容