使用 MimeKit 签署电子邮件时,ContentType 设置为application/pkcs7-signature。
我们的第三方提供商要求将 ContentType 设置为application/x-pkcs7-signature。
使用MimeKit的分离签名对电子邮件进行签名时,是否有一种简单的方法来更改/设置此 ContentType ?
使用 MimeKit 签署电子邮件时,ContentType 设置为application/pkcs7-signature。
我们的第三方提供商要求将 ContentType 设置为application/x-pkcs7-signature。
使用MimeKit的分离签名对电子邮件进行签名时,是否有一种简单的方法来更改/设置此 ContentType ?
虽然 ContentType 对象是只读的,但 MediaSubtype 属性不是。
因此,使用以下内容,我可以添加我们需要的x-前缀。
var part = SourceEmail.BodyParts.First(x => x.ContentType.MediaSubtype == "pkcs7-signature");
part.ContentType.MediaSubtype = "x-pkcs7-signature";
我还更新了消息的整体 Content-Type。
var header = SourceEmail.Body.ContentType.Parameters.FirstOrDefault(x => x.Name == "protocol" && x.Value == "application/pkcs7-signature");
header.Value = "application/x-pkcs7-signature";
为了清楚起见,省略了错误检查。