У меня есть приложение, которое должно анализировать электронные письма, которые могут быть зашифрованы или нет.У меня есть полный поток, работающий нормально для писем, которые зашифрованы, но те, которые не зашифрованы, доставляют мне проблемы, так как я хотел бы использовать тот же код, как только письмо было расшифровано для того, что я делаю.Когда письмо не было зашифровано, у меня есть MimeMessage, мне нужно как-то преобразовать его в MimeEntity, чтобы он проходил код синтаксического анализа, который я написал для зашифрованных сообщений.
Вот пример моего кода, обратите внимание
var pkcs7 = message.BodyParts.OfType<ApplicationPkcs7Mime>().FirstOrDefault();
MimeEntity decrypted;
if (pkcs7 != null)
{
decrypted = decryptAndValidateEmail(pkcs7, certLocation, certPassword);
}
else
{
//********************//
//THIS is the code that is not working at this point
decrypted = message.BodyParts as MimeEntity;
//********************//
}
var decryptedParts = new List<MimePart>();
if (decrypted is Multipart)
{
decryptedParts = breakMultiPart((Multipart)decrypted);
}
else if (decrypted is MimePart)
{
decryptedParts.Add((MimePart)decrypted);
}
else
{
throw new InvalidOperationException("Unknown Mime part found");
}
var textParts = decryptedParts.Where(r => r is TextPart);
var htmlParts = textParts.Where(x => ((TextPart)x).IsHtml);
var textBodyParts = textParts.Where(x => !((TextPart)x).IsHtml);
var attachmentParts = decryptedParts.Where(r => !(r is TextPart));
if (htmlParts.Any())
{
if (htmlParts.Count() > 1)
{
throw new InvalidOperationException("multiple html body parts.");
}
var htmlPart = (TextPart)htmlParts.First();
...