Загрузка и Сохранение Сообщений

Contents
[ ]

Загрузка и Сохранение Сообщений

Определение Форматов Файлов

API Aspose.Email предоставляет возможность определять формат файла данного сообщения. Метод DetectFileFormat класса FileFormatUtil можно использовать для этой цели. Для определения загруженного формата файла можно использовать следующие классы и методы.

Следующий фрагмент кода показывает, как определить форматы файлов.

Загрузка Сообщения с Опциями Загрузки

Следующий фрагмент кода показывает, как загрузить сообщение с опциями загрузки.

Сохранение Встраиваемого Формата Сообщения во Время Загрузки

Загрузка Сообщения с Сохранением или Удалением Подписи

Поддерживается сохранение подписи по умолчанию при загрузке файлов EML. Чтобы удалить подпись, вы можете установить свойство LoadOptions.RemoveSignature в true.

Ниже приведен пример кода, который показывает, как удалить подпись при загрузке сообщения:

var msg = MapiMessage.Load(fileName, new EmlLoadOptions() { RemoveSignature = true});

Проверка Подписи Безопасных Электронных Писем

Класс SecureEmailManager позволяет проверять подпись объектов MailMessage с безопасной электронной почтой.

Класс SmimeResult хранит результаты проверки.

Следующие методы класса SecureEmailManager и фрагмент кода позволят вам обработать подпись:

var eml = MailMessage.Load(fileName);
var result = new SecureEmailManager().CheckSignature(eml);

var certFileName = "cert.pfx";
var cert = new X509Certificate2(certFileName, "pass");
var eml = MailMessage.Load(fileName);
var store = new X509Store();
store.Open(OpenFlags.ReadWrite);
store.Add(cert);
store.Close();

var result = new SecureEmailManager().CheckSignature(eml, cert, store);

Сохранение и Конвертирование Сообщений

Aspose.Email облегчает конвертацию любого типа сообщения в другой формат. Для демонстрации этой функции код в этой статье загружает три типа сообщений с диска и сохраняет их обратно в других форматах. Базовый класс SaveOptions и классы EmlSaveOptions, MsgSaveOptions, MhtSaveOptions, HtmlSaveOptions для дополнительных настроек при сохранении MailMessage могут быть использованы для сохранения сообщений в другие форматы. В статье показано, как использовать эти классы для сохранения примера email в:

  • Формат EML.
  • Outlook MSG.
  • Формат MHTML.
  • Формат HTML.

Загрузка и Сохранение сообщения EML

Следующий фрагмент кода показывает, как загрузить сообщение EML и сохранить его на диск в том же формате.

Загрузка и Сохранение сообщения EML с Сохранением Оригинальных Границ

Следующий фрагмент кода показывает, как загрузить EML и сохранить как EML, сохраняя оригинальные границы.

Сохранение как EML с Сохранением TNEF Вложений

Следующий фрагмент кода показывает, как сохранить как EML с сохранением TNEF вложений.

Сохранение EML как MSG

Следующий фрагмент кода показывает, как загрузить сообщение EML и конвертировать его в MSG, используя соответствующую опцию из SaveOptions.

Сохранение как MSG с Сохранением Дат

Класс MsgSaveOptions позволяет сохранять исходное сообщение как файл Outlook Message (MSG) с сохранением дат. Следующий фрагмент кода показывает, как сохранить как MSG с сохранением дат.

Сохранение MailMessage как MHTML

Разные опции MHTML могут быть использованы для получения желаемых результатов. Следующий фрагмент кода показывает, как загрузить сообщение EML в MailMessage и конвертировать его в MHTML с датой сообщения в системе UTC.

// Для полного примера и файлов данных, пожалуйста, зайдите на https://github.com/aspose-email/Aspose.Email-for-.NET

// Установка опций для вывода MHTML
MhtSaveOptions saveOptions = SaveOptions.DefaultMhtml;
saveOptions.PreserveOriginalDate = false; // сохранить дату сообщения как дату UTC

// Инициализация и загрузка существующего файла EML
using (MailMessage mailMessage = MailMessage.Load(folderPath + "Message.eml"))
{
    mailMessage.Save(folderPath + "Message_out.mhtml", saveOptions);
}

Конвертация в MHTML с Дополнительными Настройками

Класс MhtSaveOptions предоставляет дополнительные опции для сохранения электронных сообщений в формате MHTML. Перечислитель MhtFormatOptions позволяет записывать дополнительную информацию об электронной почте в выходной MHTML. Следующие дополнительные поля могут быть записаны:

  • WriteHeader – записывать заголовок электронной почты в выходной файл.
  • WriteOutlineAttachments – записывать вложения в выходной файл.
  • WriteCompleteEmailAddress – записывать полный адрес электронной почты в выходной файл.
  • NoEncodeCharacters – никакая кодировка символов не должна использоваться.
  • HideExtraPrintHeader – скрыть дополнительный заголовок печати в верхней части выходного файла.
  • WriteCompleteToEmailAddress – записывать полный адрес электронной почты получателя в выходной файл.
  • WriteCompleteFromEmailAddress – записывать полный адрес электронной почты отправителя в выходной файл.
  • WriteCompleteCcEmailAddress – записывать полные адреса электронной почты любых получателей с копией в выходной файл.
  • WriteCompleteBccEmailAddress – записывать полный адрес электронной почты любых получателей с сокрытой копией в выходной файл.
  • RenderCalendarEvent – записывать текст из события календаря в выходной файл.
  • SkipByteOrderMarkInBody – записывать байты отметки порядка байтов (BOM) в выходной файл.
  • RenderVCardInfo – записывать текст из альтернативного представления VCard в выходной файл.
  • DisplayAsOutlook – отображать заголовок From.
  • RenderTaskFields – записывает конкретные поля задачи в выходной файл.
  • None – Нет заданных настроек.

Следующий фрагмент кода показывает, как конвертировать файлы EML в MHTML с дополнительными настройками.

Отображение Календарных Событий при Конвертации в MHTML

Опция MhtFormatOptions.RenderCalendarEvent отображает события календаря в выходном MTHML. Следующий фрагмент кода показывает, как отобразить календарные события при конвертации в MHTML.

Экспорт Электронной Почты в MHT без Встраиваемых Изображений

Экспорт Электронной Почты в MHT с Настроенной Часовой Зоной

Класс MailMessage предоставляет свойство TimeZoneOffset для установки настраиваемого времени при экспорте в MHT. Следующий фрагмент кода показывает, как экспортировать электронное письмо в MHT с настраиваемой часовой зоной.

Изменение Шрифта при Конвертации в MHT

Сохранение RTF тела при конвертации MSG в EML

Конвертация MSG файла в EML с сохранением RTF тела может быть выполнена двумя способами:

Оба свойства получают или устанавливают значение, указывающее, сохранять ли rtf тело в MailMessage.

Следующие фрагменты кода показывают, как конвертировать MSG файл в EML и сохранить RTF тело:

var loadOptions = new MsgLoadOptions
{
    PreserveRtfContent = true
};

var eml = MailMessage.Load("my.msg", loadOptions);
var conversionOptions = new MailConversionOptions
{
    PreserveRtfContent = true
};

var msg = MapiMessage.Load("my.msg");

var eml = msg.ToMailMessage(conversionOptions);

Экспорт Электронной Почты в EML

Следующий фрагмент кода показывает, как экспортировать электронные письма в EML.

Сохранение Сообщения как HTML

Класс HtmlSaveOptions позволяет экспортировать текст сообщения в HTML. Следующий фрагмент кода показывает, как сохранить сообщение как HTML.

Сохранение как HTML без Встраивания Ресурсов

Сохранение Сообщения как Шаблон Outlook (.oft)

Следующий фрагмент кода показывает, как сохранить сообщение как шаблон Outlook (.oft).