我可以将 S/MIME 作为多部分/混合消息的一部分吗?

Posted

技术标签:

【中文标题】我可以将 S/MIME 作为多部分/混合消息的一部分吗?【英文标题】:Can I have S/MIME as part of a multipart/mixed message? 【发布时间】:2017-01-31 03:09:21 【问题描述】:

我正在尝试通过预定义的电子邮件分发系统发送 S/MIME 加密电子邮件。

我给他们一封完全有效的电子邮件,包含所有正确的标题和正确加密的内容。

问题是,系统将电子邮件拆开并从中创建一个新的“多部分/混合”消息,并将 smime.p7m 作为附件附加。

尽管 Thunderbird 设法以正确的方式加密内容,但 Outlook 等其他人却没有,只会显示一条空消息。

我的问题是:是否可以将 S/MIME 消息作为多部分消息的一部分?

新创建消息的外观示例:

...
MIME-Version: 1.0
Content-Type: multipart/mixed;
 boundary="_=_swift_v4_1474547127_a48edcebcdce51b8c8f455_=_"


--_=_swift_v4_1474547127_a48edcebcdce51b8c8f455_=_
Content-Type: application/x-pkcs7-mime; smime-type=enveloped-data; name=smime.p7m
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename=smime.p7m

MIMDul4GCSqGSIb3DQEHA6CDA7pOMIMDukkCAQAxggJuMIICagIBADBSMEUxCzAJBgNVBAYTAkFV
...

--_=_swift_v4_1474547127_a48edcebcdce51b8c8f455_=_--

【问题讨论】:

【参考方案1】:

是的,您可以将application/x-pkcs7-mime 作为multipart/mixed 的子部分。这是完全有效的。 application/x-pkcs7-mime 部分必须驻留在 MIME 结构中的位置没有限制。

【讨论】:

为什么 Outlook 根本不显示任何邮件内容,而 Thunderbird 也没有显示“锁定”图标来表明它是加密邮件? 好吧,现在您询问的是个别客户以及他们支持什么,但您最初的问题是关于标准允许的内容。也许那些客户端只支持*** S/MIME。 没错。但我认为如果任何客户都接近其 Thunderbird 的标准 ^^ 我很惊讶 Thunderbird 也不处理它​​,但是 耸耸肩

以上是关于我可以将 S/MIME 作为多部分/混合消息的一部分吗?的主要内容,如果未能解决你的问题,请参考以下文章

PHP pdf 电子邮件附件,内容类型:多部分/混合,html 消息未显示

构造多部分 MIME 消息而不将其保存在内存中

Flutter基础系列之混合开发

MIME 类型多部分/混合的无对象 DCH

从多部分/替代消息中获取附件作为字符串[重复]

如何在 PowerShell 中使用 S/MIME 对消息进行签名和加密