Завантаження та збереження електронного листа
Завантажити лист
Завантажити з EML
У цьому розділі описано, як завантажити файл EML у об’єкт MailMessage, використовуючи EmlLoadOptions клас. Клас EmlLoadOptions надає різноманітні параметри для налаштування процесу завантаження файлу EML, наприклад збереження форматів вбудованих повідомлень або керування поведінкою завантаження вкладень TNEF.
- Ініціалізуйте екземпляр EmlLoadOptions.
- Налаштуйте параметри завантаження за потреби.
- Використайте MailMessage.Load() метод завантаження файлу EML з вказаними параметрами.
using Aspose.Email;
// Initialize EmlLoadOptions
var loadOptions = new EmlLoadOptions
{
// Configure load options
PreferredTextEncoding = Encoding.UTF8, // Sets preferred encoding for the message
PreserveEmbeddedMessageFormat = true, // Preserve format of embedded messages
PreserveTnefAttachments = true, // Control TNEF attachment loading
RemoveSignature = false // Do not remove the signature
};
// Load the EML file
var eml = MailMessage.Load("file.eml", loadOptions);
Властивості EmlLoadOptions
- PreferredTextEncoding: Встановлює бажане кодування для теми та тіла повідомлення. За замовчуванням —
null. - PreserveEmbeddedMessageFormat: Вказує, чи зберігати формат вбудованих повідомлень під час завантаження. За замовчуванням —
false. - PreserveTnefAttachments: Керує поведінкою завантаження вкладень TNEF. За замовчуванням —
false. - RemoveSignature: Вказує, чи слід видаляти підпис під час завантаження. За замовчуванням —
false.
Зберегти формат вбудованого повідомлення
Завантажити повідомлення з підписом/без підпису
Збереження підпису за замовчуванням підтримується при завантаженні EML‑файлів. Щоб видалити підпис, можна встановити LoadOptions.RemoveSignature властивість встановити в true.
Нижче наведений приклад коду, який показує, як видалити підпис під час завантаження повідомлення:
var msg = MailMessage.Load(fileName, new EmlLoadOptions() { RemoveSignature = true});
Завантажити з EMLX
У наступному розділі розглядається завантаження EMLX‑файлу за допомогою EmlxLoadOptions клас. Цей клас надає опції, схожі на EmlLoadOptions, забезпечуючи контроль над кодуванням, видаленням підпису та іншим.
- Створіть екземпляр EmlxLoadOptions.
- Налаштуйте властивості за потреби.
- Використайте MailMessage.Load() метод для завантаження файлу EMLX.
using Aspose.Email;
// Instantiate EmlxLoadOptions
var loadOptions = new EmlxLoadOptions
{
// Configure load options
PreferredTextEncoding = Encoding.UTF8, // Set encoding preference
PreserveEmbeddedMessageFormat = true, // Preserve embedded message formats
RemoveSignature = true // Remove signatures during loading
};
// Load the EMLX file
var emlx = MailMessage.Load("file.emlx", loadOptions);
Властивості EmlxLoadOptions
- PreferredTextEncoding: Встановлює бажане кодування для теми та тіла повідомлення. За замовчуванням —
null. - PreserveEmbeddedMessageFormat: Вказує, чи зберігати формат вбудованих повідомлень. За замовчуванням —
false. - RemoveSignature: Вказує, чи потрібно видаляти підпис під час завантаження. За замовчуванням —
false.
Завантажити з HTML
Дізнайтеся, як завантажити HTML‑файл у MailMessage за допомогою HtmlLoadOptions клас. Цей клас спеціально створений для обробки HTML‑вмісту з опціями управління ресурсами та додаванням простих текстових уявлень.
- Ініціалізуйте екземпляр HtmlLoadOptions.
- Налаштуйте необхідні властивості.
- Використайте MailMessage.Load() метод для завантаження HTML‑файлу з вказаними параметрами.
using Aspose.Email;
// Initialize HtmlLoadOptions
var loadOptions = new HtmlLoadOptions
{
// Configure load options
PathToResources = "resources/", // Path to directory containing resource files
PreferredTextEncoding = Encoding.UTF8, // Set encoding preference
ShouldAddPlainTextView = true // Add plain text view of the body
};
// Load the HTML file
var html = MailMessage.Load("file.html", loadOptions);
Властивості HtmlLoadOptions
- PathToResources: Визначає шлях до каталогу, що містить файли ресурсів (зображення тощо).
- PreferredTextEncoding: Встановлює переважне кодування для теми та тіла повідомлення. За замовчуванням
null. - PreserveEmbeddedMessageFormat: Визначає, чи зберігати формат вбудованих повідомлень. За замовчуванням
false. - ShouldAddPlainTextView: Визначає, чи додавати представлення простого тексту тіла повідомлення. За замовчуванням
false.
Завантажити з MHTML
У цьому розділі пояснюється, як завантажити MHTML‑файл за допомогою MhtmlLoadOptions клас. Клас MhtmlLoadOptions пропонує опції управління кодуванням, збереженням форматів вбудованих повідомлень та обробкою TNEF‑вкладень.
- Створіть екземпляр MhtmlLoadOptions.
- Налаштуйте потрібні властивості.
- Завантажте файл MHTML за допомогою MailMessage.Load() метод.
using Aspose.Email;
// Create MhtmlLoadOptions
var loadOptions = new MhtmlLoadOptions
{
// Set load options
PreferredTextEncoding = Encoding.UTF8, // Set encoding preference
PreserveEmbeddedMessageFormat = true, // Preserve format of embedded messages
PreserveTnefAttachments = true, // Handle TNEF attachments
RemoveSignature = false // Keep the signature
};
// Load the MHTML file
var mhtml = MailMessage.Load("file.mht", loadOptions);
Властивості MhtmlLoadOptions
- MessageFormat: Представляє формат листа, який може бути EML, MSG або MHTML. За замовчуванням EML.
- PreferredTextEncoding: Встановлює бажане кодування для теми та тіла повідомлення. За замовчуванням —
null. - PreserveEmbeddedMessageFormat: Визначає, чи зберігати формат вбудованих повідомлень. За замовчуванням
false. - PreserveTnefAttachments: Керує поведінкою завантаження вкладень TNEF. За замовчуванням —
false. - RemoveSignature: Вказує, чи потрібно видаляти підпис під час завантаження. За замовчуванням —
false.
Завантажити з MSG
У цьому розділі пояснюється, як завантажити MSG‑файл у об’єкт MailMessage за допомогою MsgLoadOptions клас. Клас MsgLoadOptions пропонує різні властивості для керування способом завантаження MSG‑файлів, включаючи опції збереження RTF‑вмісту або управління TNEF‑вкладеннями.
- Створіть екземпляр MsgLoadOptions.
- Встановіть потрібні властивості для налаштування завантаження.
- Завантажте файл MSG за допомогою MailMessage.Load() метод.
using Aspose.Email;
// Create MsgLoadOptions
var loadOptions = new MsgLoadOptions
{
// Set load options
KeepOriginalEmailAddresses = true, // Preserve original email addresses
PreferredTextEncoding = Encoding.UTF8, // Set preferred encoding
PreserveRtfContent = true, // Keep RTF content in the message
PreserveTnefAttachments = true, // Handle TNEF attachments
RemoveSignature = false, // Keep the signature
Timeout = 5000 // Set timeout to 5 seconds
};
// Load the MSG file
var msg = MailMessage.Load("file.msg", loadOptions);
Властивості MsgLoadOptions
- KeepOriginalEmailAddresses: Вказує, чи зберігати оригінальні електронні адреси. За замовчуванням
false. - PreferredTextEncoding: Визначає переважне кодування для теми та тіла повідомлення. За замовчуванням
null. - PreserveEmbeddedMessageFormat: Визначає, чи слід зберігати формат вбудованих повідомлень. За замовчуванням
false. - PreserveRtfContent: Визначає, чи зберігати вміст RTF тіла у
MailMessage. За замовчуваннямfalse. - PreserveTnefAttachments: Керує поведінкою завантаження TNEF вкладень. За замовчуванням
false. - RemoveSignature: Визначає, чи видаляти підпис під час завантаження. За замовчуванням
false. - Тайм-аут: Обмежує час форматування в мілісекундах під час конвертації. За замовчуванням 3000 мс.
Завантаження з TNEF
Дізнайтеся, як завантажити TNEF eml файл за допомогою TnefLoadOptions клас. Цей клас надає параметри для управління кодуванням та видаленням підписів під час процесу завантаження.
- Створіть екземпляр TnefLoadOptions.
- Налаштуйте властивості за потреби.
- Використайте MailMessage.Load() метод завантаження файлу TNEF.
using Aspose.Email;
// Instantiate TnefLoadOptions
var loadOptions = new TnefLoadOptions
{
// Configure load options
PreferredTextEncoding = Encoding.UTF8, // Set encoding preference
PreserveEmbeddedMessageFormat = true, // Preserve embedded message formats
RemoveSignature = true // Remove signatures during loading
};
// Load the TNEF file
var tnef = MailMessage.Load("file.eml", loadOptions);
Властивості TnefLoadOptions
- MessageFormat: Представляє формат поштового повідомлення, наприклад EML, MSG або MHTML. За замовчуванням — EML.
- PreferredTextEncoding: Встановлює бажане кодування для теми та тіла повідомлення. За замовчуванням —
null. - PreserveEmbeddedMessageFormat: Вказує, чи зберігати формат вбудованих повідомлень. За замовчуванням —
false. - RemoveSignature: Вказує, чи потрібно видаляти підпис під час завантаження. За замовчуванням —
false.
Визначення форматів файлів
API Aspose.Email забезпечує можливість виявлення формату файлу наданого повідомлення. The DetectFileFormat метод FileFormatUtil клас можна використати для цього. Наступні класи та методи можна застосовувати для визначення завантаженого формату файлу.
- FileFormatType Клас
- FileFormatInfo Клас
- FileFormatUtil Клас
- FileFormatUtil.DetectFileFormat(Stream) Method
- FileFormatUtil.DetectFileFormat(String) Method
Наступний фрагмент коду показує, як виявити формати файлів.
Зберегти та конвертувати повідомлення
Aspose.Email спрощує конвертацію будь‑якого типу повідомлення в інший формат. Щоб продемонструвати цю можливість, код у цій статті завантажує три типи повідомлень з диска та зберігає їх у інших форматах. Базовий клас SaveOptions і класи EmlSaveOptions, MsgSaveOptions, MhtSaveOptions, HtmlSaveOptions для додаткових налаштувань під час збереження MailMessage можна використати для збереження повідомлень у інші формати. У статті показано, як використати ці класи для збереження прикладу листа у вигляді:
- EML‑формат.
- Outlook MSG.
- MHTML‑формат.
- HTML‑формат.
Зберегти у EML
Наступний фрагмент коду показує, як завантажити EML‑повідомлення та зберегти його на диск у тому ж форматі.
Зберегти оригінальні межі
Наступний фрагмент коду показує, як завантажити EML та зберегти його як EML, зберігаючи оригінальні межі.
Зберегти TNEF‑вкладення
Наступний фрагмент коду показує, як зберегти у форматі EML, зберігаючи TNEF‑вкладення.
Зберегти EML у MSG
Наведений нижче фрагмент коду показує, як завантажити повідомлення EML і конвертувати його у MSG, використовуючи відповідну опцію з the SaveOptions.
Зберегти дати
The MsgSaveOptions клас дозволяє зберегти вихідне повідомлення як файл Outlook Message (MSG) з збереженням дат. Нижче наведений фрагмент коду показує, як зберегти MSG із збереженими датами.
Зберегти EML у MHTML
Різні параметри MHTML можна використати для досягнення потрібних результатів. Наступний фрагмент коду показує, як завантажити EML‑повідомлення у MailMessage і конвертувати його у MHTML з датою повідомлення в системі UTC.
// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-.NET
// Set options for MHTML output
MhtSaveOptions saveOptions = SaveOptions.DefaultMhtml;
saveOptions.PreserveOriginalDate = false; // save a message date as UTC date
// Initialize and load an existing EML file
using (MailMessage mailMessage = MailMessage.Load(folderPath + "Message.eml"))
{
mailMessage.Save(folderPath + "Message_out.mhtml", saveOptions);
}
Опції конвертації
The MhtSaveOptions клас надає додаткові параметри для збереження електронних листів у формат MHTML. Перелічувач MhtFormatOptions дає можливість записати додаткову інформацію листа у вихідний MHTML. Можна записати наступні додаткові поля:
WriteHeader– записує заголовок електронної пошти у вихідний файл.WriteOutlineAttachments– записує контурні вкладення у вихідний файл.WriteCompleteEmailAddress– записує повну електронну адресу у вихідний файл.NoEncodeCharacters– не слід використовувати кодування передавання символів.HideExtraPrintHeader– приховує зайвий заголовок друку у верхній частині вихідного файлу.WriteCompleteToEmailAddress– записує повну електронну адресу одержувача у вихідний файл.WriteCompleteFromEmailAddress– записує повну електронну адресу відправника у вихідний файл.WriteCompleteCcEmailAddress– записує повні електронні адреси будь‑яких одержувачів у копії (CC) у вихідний файл.WriteCompleteBccEmailAddress– записує повну електронну адресу будь‑якого одержувача у копії приховано (BCC) у вихідний файл.RenderCalendarEvent– записує текст події календаря у вихідний файл.SkipByteOrderMarkInBody– записує байти маркера порядку байт (BOM) у вихідний файл.RenderVCardInfo– записує текст з VCard AlternativeView у вихідний файл.DisplayAsOutlook– відображає заголовок From.RenderTaskFields– записує конкретні поля Task у вихідний файл.None– Параметр не зазначено.
Наступний фрагмент коду показує, як конвертувати файли EML у MHTML з додатковими налаштуваннями.
Візуалізувати події календаря
The MhtFormatOptions.RenderCalendarEvent виводить події календаря у вихідний MHTML. Нижче наведено фрагмент коду, який показує, як рендерити події календаря під час конвертації у MHTML.
Експорт листа у MHT без вбудованих зображень
Експорт листа у MHT з налаштованим часовим поясом
MailMessage class надає TimeZoneOffset властивість для встановлення кастомізованого часового поясу під час експорту у MHT. У наведеному фрагменті коду показано, як експортувати електронний лист у MHT з кастомізованим часовим поясом.
Налаштування шрифту
Зберегти EML у HTML
The HtmlSaveOptions клас дозволяє експортувати тіло повідомлення у HTML. У наведеному фрагменті коду показано, як зберегти повідомлення у форматі HTML.
Зберегти без вбудованих ресурсів
Зберегти EML у OFT
У наведеному фрагменті коду показано, як зберегти повідомлення як шаблон Outlook (.oft).
Конвертувати EML у MSG (MailMessage у MapiMessage)
Щоб конвертувати MailMessage об’єкт, завантажений з файлу EML у MapiMessage об’єкт, використайте MapiConversionOptions клас. Ця конвертація часто необхідна, оскільки ці два об’єкти служать різним цілям і задовольняють різні потреби в обробці електронної пошти. MapiMessage спеціально розроблений для сумісності з Microsoft Outlook та Exchange Server, оскільки дотримується формату Messaging Application Programming Interface (MAPI). Це забезпечує повну сумісність електронних листів, конвертованих у файли MSG, з продуктами Microsoft, дозволяючи їх відкривати, змінювати та керувати безпосередньо в Outlook.
Ця конвертація також необхідна, коли електронні листи потрібно архівувати, індексувати або обробляти сховищами, які вимагають формат MAPI, сховища PST/OST, OLM, наприклад. The MapiConversionOptions class дозволяє вказати додаткові параметри, такі як збереження оригінального формату повідомлення, збереження оригінальних дат та стиснення тіла RTF під час конвертації. Наступний приклад коду показує, як завантажити електронний лист із файлу у форматі .eml і конвертувати його у формат Outlook .msg, дозволяючи налаштування, але забезпечуючи збереження певних характеристик оригінального листа під час конвертації.
- Створіть екземпляр
MapiConversionOptionsі налаштуйте його властивості. - Конвертувати
MailMessageоб’єкт уMapiMessageоб’єкт, використовуючи налаштовані параметри конвертації.
MailMessage eml = MailMessage.Load("email.eml", new EmlLoadOptions());
// Create an instance of MapiConversionOptions
var conversionOptions = new MapiConversionOptions
{
// Configure MapiConversionOptions
Format = OutlookMessageFormat.Unicode, // Use Unicode format for MSG
PreserveEmbeddedMessageFormat = true, // Preserve the format of embedded messages
PreserveOriginalAddresses = true, // Keep original email addresses
PreserveOriginalDates = true, // Preserve original dates
PreserveEmptyDates = false, // Generate new dates if original are empty
RemoveSignature = false, // Do not remove the signature
UseBodyCompression = true, // Enable RTF body compression
ForcedRtfBodyForAppointment = false // Disable forced RTF body for appointments
};
// Convert MailMessage to MapiMessage
MapiMessage msg = MapiMessage.FromMailMessage(eml, conversionOptions);
Доступні властивості MapiConversionOptions
-
ASCIIFormat: Повертає
MapiConversionOptionsналаштовано зOutlookMessageFormatяк ASCII, зPreserveSignatureвстановити false іUseBodyCompressionвстановити false. Ця опція корисна, коли потрібне конвертування у простий ASCII‑формат. -
UnicodeFormat: Повертає
MapiConversionOptionsзOutlookMessageFormatвстановити Unicode, і обидваPreserveSignatureіUseBodyCompressionвстановити false. Використовуйте цю опцію для більш широкої підтримки символів у MSG‑файлах. -
ForcedRtfBodyForAppointment: Якщо встановлено true, примушує використання RTF‑тіла для календарних зустрічей. Це корисно, якщо потрібно забезпечити сумісність з певними поштовими клієнтами. За замовчуванням true.
-
Format: Вказує вихідний формат для MSG‑файлу. Можна встановити один з
OutlookMessageFormat.ASCIIабоOutlookMessageFormat.Unicode, контролюючи, чи конвертований MSG має використовувати кодування ASCII чи Unicode. -
PreserveEmbeddedMessageFormat: Визначає, чи зберігати оригінальний EML‑формат вбудованих повідомлень під час конвертації у
MapiMessage. Встановлення true забезпечує, що вбудовані листи зберігають свою оригінальну структуру. За замовчуванням false. -
PreserveEmptyDates: Якщо встановлено true, зберігає оригінальні дати збереження та модифікації з EML. Інакше будуть згенеровані нові дати, якщо оригінальні порожні.
-
PreserveOriginalAddresses: Якщо встановлено true, зберігає оригінальні електронні адреси без перевірки. Це корисно, коли адреси можуть не відповідати суворим стандартам, але їх потрібно залишити без змін. За замовчуванням false.
-
PreserveOriginalDates: Забезпечує збереження оригінальних дат надсилання та отримання під час процесу конвертації. Встановлення true зберігає ці дати для кращої історичної точності.
-
RemoveSignature: Керує тим, чи буде цифровий підпис, якщо він присутній, видалений з повідомлення під час конвертації. За замовчуванням false, тобто підпис залишатиметься, якщо його явно не видалити.
-
UseBodyCompression: Увімкнути стиснення RTF‑тіла, якщо встановлено true. Це може допомогти зменшити розмір MSG‑файлу, особливо при роботі з великими повідомленнями з багатим форматуванням.