0

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

4

1 回答 1

0

使用 Rebex API(至少在这种情况下)可以强制特定的内容类型,但您必须使用低级 MIME API。因此,如果您当前正在使用MailMessage该类,则可以使用这种方法:

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 Mail)识别为 S/MIME 邮件。

于 2020-10-01T14:34:18.277 回答