В моем приложении пользователи могут загружать электронные письма на файловый сервер, после чего эти электронные письма должны быть удалены из их вложений и преобразованы в PDF для отдельного сохранения. Но у меня возникают проблемы с правильным удалением вложений из электронного письма.
Когда я преобразую электронное письмо и сохраняю его с вложениями, оно работает отлично, но когда я сначала удаляю вложения, а затем сохраняю их, это как-то портит сгенерированный PDF-файл, который выглядит как this (это только одна из 4 страниц, сгенерированных из 4-строчного электронного письма). Может кто-нибудь объяснить, что я делаю неправильно?
Это мой код для удаления вложений из электронного письма:
public static List<(string FileName, Stream Content)> GetEmailAndAttachmentsFromEmail(Stream emailContent)
{
var email = MailMessage.Load(emailContent);
var retval = new List<(string, Stream)>
{
($"{email.Subject}.msg", emailContent)
};
var attachmentsToRemove = new List<Attachment>();
foreach (var attachment in email.Attachments)
{
retval.Add((attachment.Name, attachment.ContentStream));
attachmentsToRemove.Add(attachment);
}
foreach (var attachment in attachmentsToRemove)
{
email.Attachments.Remove(attachment);
}
return retval;
}
Я уже пробовал несколько перестановок этого кода, но ни один сработало.
Кроме того, я следую официальной документации Aspose по этому вопросу и не вижу, что я делаю по-другому / неправильно.