Загрузка и Сохранение Сообщений
Загрузка и Сохранение Сообщений
Определение Форматов Файлов
API Aspose.Email предоставляет возможность определять формат файла данного сообщения. Метод DetectFileFormat класса FileFormatUtil можно использовать для этой цели. Для определения загруженного формата файла можно использовать следующие классы и методы.
- FileFormatType Класс
- FileFormatInfo Класс
- FileFormatUtil Класс
- FileFormatUtil.DetectFileFormat(Stream) Метод
- FileFormatUtil.DetectFileFormat(String) Метод
Следующий фрагмент кода показывает, как определить форматы файлов.
Загрузка Сообщения с Опциями Загрузки
Следующий фрагмент кода показывает, как загрузить сообщение с опциями загрузки.
Сохранение Встраиваемого Формата Сообщения во Время Загрузки
Загрузка Сообщения с Сохранением или Удалением Подписи
Поддерживается сохранение подписи по умолчанию при загрузке файлов EML. Чтобы удалить подпись, вы можете установить свойство LoadOptions.RemoveSignature в true.
Ниже приведен пример кода, который показывает, как удалить подпись при загрузке сообщения:
var msg = MapiMessage.Load(fileName, new EmlLoadOptions() { RemoveSignature = true});
Проверка Подписи Безопасных Электронных Писем
Класс SecureEmailManager позволяет проверять подпись объектов MailMessage с безопасной электронной почтой.
Класс SmimeResult хранит результаты проверки.
Следующие методы класса SecureEmailManager и фрагмент кода позволят вам обработать подпись:
- SecureEmailManager.CheckSignature(MailMessage msg) метод.
- SecureEmailManager.CheckSignature(MailMessage msg, X509Certificate2 certificateForDecrypt) метод.
- SecureEmailManager.CheckSignature(MailMessage msg, X509Certificate2 certificateForDecrypt, X509Store store) метод.
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 тела может быть выполнена двумя способами:
-
используя свойство MsgLoadOptions.PreserveRtfContent класса MsgLoadOptions;
-
используя свойство MailConversionOptions.PreserveRtfContent класса MailConversionOptions;
Оба свойства получают или устанавливают значение, указывающее, сохранять ли 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).