Я использую MailKit (который основан на MimeKit) для отправки и получения писем, которые подписаны и зашифрованы.
Я хочу проверить, имеет ли полученное в письме только одно вложение в методеЯ звоню туда, где, как я ожидаю, в письме будет только одно вложение .txt.
Мое текущее решение выглядит так:
private string GetContentOfSingleAttachmentFromMail(MimeEntity decryptedEntity)
{
if (decryptedEntity == null)
{
throw new ArgumentNullException("decryptedEntity");
}
var mimeMessage = new MimeMessage(decryptedEntity);
var attachments = mimeMessage.Attachments.Where(attachment =>
//signatures don't matter for the attachment count
!attachment.ContentType.MimeType.Equals("application/pkcs7-signature")).ToList();
if (attachments.Count() > 1)
{
throw new InvalidOperationException(
"More than one attachment was found.");
}
var firstAttachment = attachments.FirstOrDefault();
if (firstAttachment != null)
{
using (var memoryStream = new MemoryStream())
{
HandleMimeEntity(firstAttachment, memoryStream);
return Encoding.UTF8.GetString(memoryStream.ToArray());
}
}
throw new MailMessageGetAttachmentContentException("The message did not contain an attachment");
}
Есть ли лучший способ, чем проверка MimeType?(в строке 12) @jstedfast У вас есть идея?