Во-первых, это неверно:
var attachment = new MimeKit.MimePart("multipart/related", "txt")
Это приведет к:
Content-Type: multipart/related/txt
Это совершенно неправильный тип пантомимы.
Не уверен, чтовы идете, но это определенно не должно быть multipart
ничего.
Теперь к вашему основному вопросу о том, почему ваше сообщение не шифруется.
Легко: вы делаетепервые несколько шагов для получения списка получателей CMS (который выглядит нормально), но вы ничего с ними не делаете.
var certificateFile = @"E:\RESDE_RSA.pfx";
var certificate = new X509Certificate2(certificateFile,"", X509KeyStorageFlags.Exportable);
var recipientCollection = new CmsRecipientCollection();
var bountyRecipientCertificate = DotNetUtilities.FromX509Certificate(certificate);
var recipient = new CmsRecipient(bountyRecipientCertificate);
recipient.EncryptionAlgorithms = new EncryptionAlgorithm[] { EncryptionAlgorithm.Aes256 };
recipientCollection.Add(recipient);
// now you need to actually encrypt
using (var ctx = new TemporarySecureMimeContext ()) {
var encrypted = ApplicationPkcs7Mime.Encrypt (ctx, recipientCollection, multipart);
message.Body = encrypted;
}