Зареждане и запазване на имейл съобщение
Зареждане на имейл съобщение
Зареждане от 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.
Откриване на файлови формати
Aspose.Email API предоставя възможност за откриване на файловия формат на предоставения файл със съобщението. 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, използвайки съответната опция от SaveOptions.
Запазване на датите
Този 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);
}
Опции за конвертиране
Този MhtSaveOptions клас предоставя допълнителни опции за запазване на имейл съобщения във формат MHTML. Перечисление MhtFormatOptions прави възможно записването на допълнителна имейл информация във изходен MHTML. Следните допълнителни полета могат да бъдат записани:
WriteHeader– записва имейл заглавката във изходния файл.WriteOutlineAttachments– записва контурните прикачени файлове във изходния файл.WriteCompleteEmailAddress– записва пълния имейл адрес във изходния файл.NoEncodeCharacters– не трябва да се използва преносно кодиране на знаци.HideExtraPrintHeader– скрива допълнителната печатна заглавка от върха на изходния файл.WriteCompleteToEmailAddress– записва пълния имейл адрес на получателя във изходния файл.WriteCompleteFromEmailAddress– записва пълния имейл адрес на изпращача във изходния файл.WriteCompleteCcEmailAddress– записва пълните имейл адреси на всички получатели с копие (Cc) във изходния файл.WriteCompleteBccEmailAddress– записва пълния имейл адрес на всички получатели със скрито копие (Bcc) във изходния файл.RenderCalendarEvent– записва текста от календарното събитие във изходния файл.SkipByteOrderMarkInBody– записва байтовете на маркера за подредба на байтовете (BOM) във изходния файл.RenderVCardInfo– записва текста от VCard AlternativeView във изходния файл.DisplayAsOutlook– показва заглавната част From.RenderTaskFields– записва конкретни полета на задачата във изходния файл.None– Не е зададено настройка.
Следният примерен код показва как да конвертирате EML файлове в MHTML с опционални настройки.
Визуализиране на календарни събития
Този MhtFormatOptions.RenderCalendarEvent извежда събитията от календара в изходен MHTML. Следният кодов фрагмент показва как да рендерирате календарните събития при конвертиране към MHTML.
Експортиране на имейл към MHT без вградени изображения
Експортиране на имейл в MHT с персонализиран часови пояс
MailMessage клас предоставя TimeZoneOffset свойство за задаване на персонализиран часови пояс при експортиране в MHT. Следният кодов фрагмент показва как да експортирате имейл в MHT с персонализиран часови пояс.
Настройка на шрифт
Записване на EML в HTML
Този 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 класът позволява да зададете допълнителни опции, като запазване на оригиналния формат на съобщението, запазване на оригиналните дати и компресиране на 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 тялото, ако е зададено като истина. Това може да помогне за намаляване на размера на MSG файла, особено при големи съобщения с богато форматиране.