电子邮件的 S/MIME 内容类型是否可以明确定义?

Can the S/MIME Content Type of e-mail be explicitly defined?

收件人需要一封带附件的签名加密邮件。
在他们的规范中,在电子邮件附件部分下,他们声明“MIME 部分的内容类型必须是 Application/octet-stream”。
我们的附件是必需的内容类型。仅签名消息包含不同的内容类型,但它们似乎不会造成任何问题,因为在发送仅签名消息时,收件人能够解析我们的消息并发送确认。
加密消息时,生成的 Content-Type 为 Content-Type: application/pkcs7-mime;.
联系收件人后,他们能够向我们提供他们的自动化系统的错误消息,内容如下:Unknown Email-ContentType: application/pkcs7-mime
他们的错误消息让我相信除了附件类型之外,电子邮件内容类型也需要是八位字节流。
我将 C# 与 Rebex 一起使用,是否可以强制使用特定的内容类型?

使用 Rebex API 可以强制指定内容类型(至少在这种情况下),但您必须使用 low-level MIME API。所以如果你目前正在使用 MailMessage class,你可能会使用这种方法:

using Rebex.Mail;
using Rebex.Mime;
using Rebex.Mime.Headers;
...


var message = new MailMessage();
...
message.Sign(...);
message.Encrypt(...);

MimeMessage mime = message.ToMimeMessage();
mime.ContentType = new ContentType(MediaTypeNames.Application.Octet);
mime.Save("message.eml");

但是,请注意,这会导致邮件看起来只包含二进制数据,并且它很可能不会被普通邮件软件和库(包括 Rebex Secure)识别为 S/MIME 邮件邮件.