Načíst a uložit e‑mailovou zprávu
Načíst e‑mailovou zprávu
Načíst z EML
Tato sekce popisuje, jak načíst soubor EML do objektu MailMessage pomocí EmlLoadOptions třída. Třída EmlLoadOptions poskytuje různé možnosti přizpůsobení načítání souboru EML, například zachování formátů vložených zpráv nebo řízení chování načítání TNEF příloh.
- Inicializujte instanci třídy EmlLoadOptions.
- Nastavte možnosti načítání podle potřeby.
- Použijte MailMessage.Load() metoda pro načtení souboru EML s určenými možnostmi.
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);
Vlastnosti EmlLoadOptions
- PreferredTextEncoding: Nastavuje preferované kódování předmětu a těla zprávy. Výchozí hodnota je
null. - PreserveEmbeddedMessageFormat: Udává, zda během načítání zachovat formát vložených zpráv. Výchozí hodnota je
false. - PreserveTnefAttachments: Řídí chování načítání TNEF příloh. Výchozí hodnota je
false. - RemoveSignature: Udává, zda má být během načítání odstraněn podpis. Výchozí hodnota je
false.
Zachovat formát vložené zprávy
Načíst zprávu s podpisem/bez podpisu
Zachování podpisu je ve výchozím nastavení podporováno při načítání souborů EML. Pro odebrání podpisu můžete nastavit LoadOptions.RemoveSignature nastavte vlastnost na true.
Níže uvedený ukázkový kód ukazuje, jak při načítání zprávy odebrat podpis:
var msg = MailMessage.Load(fileName, new EmlLoadOptions() { RemoveSignature = true});
Načíst z EMLX
Následující část popisuje načítání souboru EMLX pomocí EmlxLoadOptions třída. Tato třída poskytuje možnosti podobné EmlLoadOptions, nabízející kontrolu nad kódováním, odstraňováním podpisu a další.
- Vytvořte instanci třídy EmlxLoadOptions.
- Nakonfigurujte vlastnosti dle potřeby.
- Použijte MailMessage.Load() metoda pro načtení souboru 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);
Vlastnosti EmlxLoadOptions
- PreferredTextEncoding: Nastavuje preferované kódování předmětu a těla zprávy. Výchozí hodnota je
null. - PreserveEmbeddedMessageFormat: Udává, zda zachovat formát vložených zpráv. Výchozí hodnota je
false. - RemoveSignature: Udává, zda během načítání odstranit podpis. Výchozí hodnota je
false.
Načíst z HTML
Naučte se, jak načíst HTML soubor do MailMessage pomocí HtmlLoadOptions třída. Tato třída je speciálně navržena pro zpracování HTML obsahu s možnostmi správy zdrojů a přidání zobrazení prostého textu.
- Inicializujte instanci třídy HtmlLoadOptions.
- Nakonfigurujte potřebné vlastnosti.
- Použijte MailMessage.Load() metoda pro načtení HTML souboru se zadanými možnostmi.
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);
Vlastnosti HtmlLoadOptions
- PathToResources: Definuje cestu k adresáři obsahujícím soubory zdrojů (např. obrázky).
- PreferredTextEncoding: Nastavuje preferované kódování pro předmět a tělo zprávy. Výchozí hodnota je
null. - PreserveEmbeddedMessageFormat: Určuje, zda zachovat formát vložených zpráv. Výchozí hodnota je
false. - ShouldAddPlainTextView: Určuje, zda přidat zobrazení prostého textu těla zprávy. Výchozí hodnota je
false.
Načíst z MHTML
Tato část vysvětluje, jak načíst soubor MHTML pomocí MhtmlLoadOptions třída. Třída MhtmlLoadOptions nabízí možnosti pro správu kódování, zachování formátů vložených zpráv a zpracování TNEF příloh.
- Vytvořte instanci třídy MhtmlLoadOptions.
- Nakonfigurujte požadované vlastnosti.
- Načtěte MHTML soubor pomocí MailMessage.Load() metoda.
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);
Vlastnosti MhtmlLoadOptions
- MessageFormat: Reprezentuje formát poštovní zprávy, který může být EML, MSG nebo MHTML. Výchozí hodnota je EML.
- PreferredTextEncoding: Nastavuje preferované kódování předmětu a těla zprávy. Výchozí hodnota je
null. - PreserveEmbeddedMessageFormat: Určuje, zda zachovat formát vložených zpráv. Výchozí hodnota je
false. - PreserveTnefAttachments: Řídí chování načítání TNEF příloh. Výchozí hodnota je
false. - RemoveSignature: Udává, zda během načítání odstranit podpis. Výchozí hodnota je
false.
Načíst z MSG
Tato část vysvětluje, jak načíst soubor MSG do objektu MailMessage pomocí MsgLoadOptions třída. Třída MsgLoadOptions nabízí různé vlastnosti pro řízení načítání MSG souborů, včetně možností zachovat obsah RTF nebo spravovat TNEF přílohy.
- Vytvořte instanci třídy MsgLoadOptions.
- Nastavte požadované vlastnosti pro přizpůsobení načítání.
- Načtěte soubor MSG pomocí MailMessage.Load() metoda.
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);
Vlastnosti MsgLoadOptions
- KeepOriginalEmailAddresses: Udává, zda zachovat původní e‑mailové adresy. Výchozí hodnota je
false. - PreferredTextEncoding: Definuje preferované kódování pro předmět a tělo zprávy. Výchozí hodnota je
null. - PreserveEmbeddedMessageFormat: Určuje, zda má být zachován formát vložených zpráv. Výchozí hodnota je
false. - PreserveRtfContent: Určuje, zda zachovat obsah těla RTF v
MailMessage. Výchozí hodnota jefalse. - PreserveTnefAttachments: Řídí chování načítání TNEF příloh. Výchozí hodnota je
false. - RemoveSignature: Určuje, zda odebrat podpis během načítání. Výchozí hodnota je
false. - Časový limit: Omezuje čas formátování v milisekundách během konverze. Výchozí hodnota je 3000 ms.
Načíst z TNEF
Naučte se, jak načíst soubor TNEF eml pomocí TnefLoadOptions třída. Tato třída poskytuje možnosti pro správu kódování a odstraňování podpisů během načítání.
- Vytvořte instanci TnefLoadOptions.
- Nastavte vlastnosti podle potřeby.
- Použijte MailMessage.Load() metoda pro načtení souboru 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);
Vlastnosti TnefLoadOptions
- MessageFormat: Reprezentuje formát e‑mailové zprávy, např. EML, MSG nebo MHTML. Výchozí formát je EML.
- PreferredTextEncoding: Nastavuje preferované kódování předmětu a těla zprávy. Výchozí hodnota je
null. - PreserveEmbeddedMessageFormat: Udává, zda zachovat formát vložených zpráv. Výchozí hodnota je
false. - RemoveSignature: Udává, zda během načítání odstranit podpis. Výchozí hodnota je
false.
Detekce formátů souborů
Aspose.Email API poskytuje možnost detekovat formát souboru poskytnuté zprávy. The DetectFileFormat metoda FileFormatUtil Třída může být použita k dosažení tohoto cíle. Následující třídy a metody lze použít k detekci načteného formátu souboru.
- FileFormatType Třída
- FileFormatInfo Třída
- FileFormatUtil Třída
- FileFormatUtil.DetectFileFormat(Stream) Method
- FileFormatUtil.DetectFileFormat(String) Method
Následující úryvek kódu vám ukáže, jak detekovat formáty souborů.
Uložit a převést zprávy
Aspose.Email usnadňuje konverzi libovolného typu zprávy do jiného formátu. K demonstraci této funkce kód v tomto článku načte tři typy zpráv z disku a uloží je zpět v jiných formátech. Základní třída SaveOptions a třídy EmlSaveOptions, MsgSaveOptions, MhtSaveOptions, HtmlSaveOptions pro další nastavení při ukládání MailMessage Lze použít pro ukládání zpráv do jiných formátů. Článek ukazuje, jak použít tyto třídy k uložení ukázkového e‑mailu jako:
- EML formát.
- Outlook MSG.
- MHTML formát.
- HTML formát.
Uložit jako EML
Následující úryvek kódu vám ukáže, jak načíst zprávu EML a uložit ji na disk ve stejném formátu.
Zachovat původní hranice
Následující úryvek kódu vám ukáže, jak načíst EML a uložit jako EML zachovávajíc původní hranice.
Zachovat TNEF přílohy
Následující úryvek kódu vám ukáže, jak uložit jako EML zachovávajíc přílohy TNEF.
Uložit EML do MSG
Následující úryvek kódu ukazuje, jak načíst EML zprávu a převést ji na MSG pomocí vhodné volby z SaveOptions.
Zachovat data
The MsgSaveOptions třída vám umožňuje uložit zdrojovou zprávu jako soubor Outlook Message (MSG) se zachováním dat. Následující úryvek kódu ukazuje, jak uložit jako MSG s zachovanými daty.
Uložit EML jako MHTML
Různé možnosti MHTML lze použít k dosažení požadovaných výsledků. Následující úryvek kódu vám ukáže, jak načíst zprávu EML do MailMessage a převést ji na MHTML s datem zprávy v UTC systému.
// 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);
}
Možnosti konverze
The MhtSaveOptions Třída poskytuje další možnosti pro ukládání e‑mailových zpráv do formátu MHTML. Enumerator MhtFormatOptions Umožňuje zapisovat další informace o e‑mailu do výstupního MHTML. Následující další pole lze zapsat:
WriteHeader– zapíše hlavičku e‑mailu do výstupního souboru.WriteOutlineAttachments– zapíše strukturu příloh do výstupního souboru.WriteCompleteEmailAddress– zapíše úplnou e‑mailovou adresu do výstupního souboru.NoEncodeCharacters– nemělo by být použito žádné přenosové kódování znaků.HideExtraPrintHeader– skryje další tiskovou hlavičku v horní části výstupního souboru.WriteCompleteToEmailAddress– zapíše úplnou adresu příjemce do výstupního souboru.WriteCompleteFromEmailAddress– zapíše úplnou adresu odesílatele do výstupního souboru.WriteCompleteCcEmailAddress– zapíše úplné e‑mailové adresy všech příjemců s CC do výstupního souboru.WriteCompleteBccEmailAddress– zapíše úplnou e‑mailovou adresu všech příjemců s BCC do výstupního souboru.RenderCalendarEvent– zapíše text z kalendářové události do výstupního souboru.SkipByteOrderMarkInBody– zapíše bajty Byte Order Mark (BOM) do výstupního souboru.RenderVCardInfo– zapíše text z VCard AlternativeView do výstupního souboru.DisplayAsOutlook– zobrazí hlavičku From.RenderTaskFields– zapíše specifická pole úkolu do výstupního souboru.None– Žádné nastavení neuvedeno.
Následující úryvek kódu vám ukáže, jak převést soubory EML do MHTML s volitelnými nastaveními.
Vykreslit kalendářové události
The MhtFormatOptions.RenderCalendarEvent vykresluje události kalendáře do výstupního MHTML. Následující úryvek kódu ukazuje, jak renderovat události kalendáře při převodu do MHTML.
Export e‑mailu do MHT bez vložených obrázků
Export e‑mailu do MHT s upraveným časovým pásmem
MailMessage třída poskytuje TimeZoneOffset vlastnost pro nastavení vlastního časového pásma při exportu do MHT. Následující úryvek kódu vám ukazuje, jak exportovat e‑mail do MHT s přizpůsobeným časovým pásmem.
Úprava fontu
Uložit EML jako HTML
The HtmlSaveOptions třída umožňuje exportovat tělo zprávy do HTML. Následující úryvek kódu vám ukazuje, jak uložit zprávu jako HTML.
Uložit bez vložených zdrojů
Uložit EML jako OFT
Následující úryvek kódu vám ukazuje, jak uložit zprávu jako šablonu Outlooku (.oft) soubor.
Převést EML na MSG (MailMessage na MapiMessage)
Pro převod MailMessage objekt načtený ze souboru EML do MapiMessage objekt, použijte MapiConversionOptions třída. Tato konverze je často nutná, protože tyto dva objekty slouží různým účelům a uspokojují odlišné potřeby při zpracování e‑mailů. MapiMessage je speciálně navrženo pro kompatibilitu s Microsoft Outlook a Exchange Server, protože se řídí formátem Messaging Application Programming Interface (MAPI). To zajišťuje, že e‑mailové zprávy převedené do souborů MSG jsou plně kompatibilní s produkty Microsoftu, což umožňuje je otevírat, upravovat a spravovat přímo v Outlooku.
Tato konverze je také nutná, když je třeba e‑mailové zprávy archivovat, indexovat nebo zpracovávat úložišti, která vyžadují formát MAPI, například úložiště PST/OST, OLM. Tento MapiConversionOptions Třída vám umožňuje zadat další možnosti, jako je zachování původního formátu zprávy, zachování původních dat a komprese těla RTF během konverze. Následující ukázkový kód ukazuje, jak načíst e‑mail ze souboru ve formátu .eml a převést jej do formátu Outlook .msg s možností přizpůsobení, ale s zajištěním, že určité charakteristiky původního e‑mailu jsou během konverze zachovány.
- Vytvořte instanci
MapiConversionOptionsa nakonfigurujte jeho vlastnosti. - Převést
MailMessageobjekt naMapiMessageobjekt používající nakonfigurované možnosti konverze.
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);
Dostupné vlastnosti MapiConversionOptions
-
ASCIIFormat: Vrací
MapiConversionOptionskonfigurováno sOutlookMessageFormatjako ASCII, sPreserveSignaturenastavte na false aUseBodyCompressionnastavte na false. Tato možnost je užitečná, když potřebujete konverzi do prostého ASCII formátu. -
UnicodeFormat: Vrací
MapiConversionOptionssOutlookMessageFormatnastavte na Unicode a obaPreserveSignatureaUseBodyCompressionnastavte na false. Použijte tuto možnost pro komplexnější podporu znaků v MSG souborech. -
ForcedRtfBodyForAppointment: Když je nastaveno na true, vynutí použití RTF těla pro kalendářové schůzky. To je užitečné, pokud chcete zajistit kompatibilitu s některými e‑mailovými klienty. Výchozí hodnota je true.
-
Format: Určuje výstupní formát pro MSG soubor. Může být nastaven na jeden z
OutlookMessageFormat.ASCIIneboOutlookMessageFormat.Unicode, což řídí, zda převodní MSG použije kódování ASCII nebo Unicode. -
PreserveEmbeddedMessageFormat: Určuje, zda během konverze na zachovat původní formát EML vložených zpráv
MapiMessage. Nastavením na true zajistíte, že vložené e‑mailové zprávy si zachovají původní strukturu. Výchozí hodnota je false. -
PreserveEmptyDates: Když je nastaveno na true, zachová původní data uložení a změny z EML. Jinak budou vygenerována nová data, pokud jsou původní prázdná.
-
PreserveOriginalAddresses: Pokud je nastaveno na true, zachovává původní e‑mailové adresy bez ověřování. To je užitečné při práci s adresami, které nemusí splňovat přísné standardy, ale je třeba je zachovat tak, jak jsou. Výchozí hodnota je false.
-
PreserveOriginalDates: Zajišťuje, že původní data odeslání a přijetí jsou během konverze zachována. Nastavením na true se tato data uchovají pro lepší historickou přesnost.
-
RemoveSignature: Ovládá, zda bude během konverze digitální podpis, pokud existuje, odebrán ze zprávy. Výchozí hodnota je false, což znamená, že podpis bude zachován, pokud není výslovně odstraněn.
-
UseBodyCompression: Povolení komprese těla RTF, pokud je nastaveno na true. To může pomoci snížit velikost MSG souboru, zejména u velkých zpráv s bohatým formátováním.