Läs in och spara e‑postmeddelande
Läs in e‑postmeddelande
Läs in från EML
Detta avsnitt beskriver hur man läser in en EML‑fil i ett MailMessage‑objekt med hjälp av EmlLoadOptions klass. EmlLoadOptions‑klassen erbjuder olika alternativ för att anpassa hur EML‑filen läses in, såsom att bevara inbäddade meddelandeformat eller styra hur TNEF‑bilagor laddas.
- Initiera en instans av EmlLoadOptions.
- Konfigurera inläsningsalternativen efter behov.
- Använd MailMessage.Load() metod för att läsa in EML‑filen med de angivna alternativen.
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);
Egenskaper för EmlLoadOptions
- PreferredTextEncoding: Anger den föredragna kodningen för meddelandets ämne och kropp. Standard är
null. - PreserveEmbeddedMessageFormat: Anger om formatet för inbäddade meddelanden ska bevaras vid inläsning. Standard är
false. - PreserveTnefAttachments: Styr hur TNEF‑bilagor laddas. Standard är
false. - RemoveSignature: Anger om signaturen ska tas bort vid inläsning. Standard är
false.
Bevara inbäddat meddelandeformat
Ladda meddelande med signatur/utan signatur
Signaturbevarande stöds som standard när EML-filer laddas. För att ta bort signaturen kan du ställa in LoadOptions.RemoveSignature egenskap till true.
Kodexemplet nedan visar hur man tar bort en signatur när ett meddelande laddas:
var msg = MailMessage.Load(fileName, new EmlLoadOptions() { RemoveSignature = true});
Ladda från EMLX
Följande avsnitt behandlar inläsning av en EMLX-fil med EmlxLoadOptions klass. Denna klass erbjuder alternativ liknande EmlLoadOptions, med kontroll över kodning, signaturborttagning och mer.
- Instansiera EmlxLoadOptions.
- Konfigurera egenskaper vid behov.
- Använd MailMessage.Load() metod för att ladda EMLX-filen.
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);
Egenskaper för EmlxLoadOptions
- PreferredTextEncoding: Anger föredragen kodning för meddelandets ämne och kropp. Standard är
null. - PreserveEmbeddedMessageFormat: Anger om formatet för inbäddade meddelanden ska bevaras. Standard är
false. - RemoveSignature: Anger om signaturen ska tas bort vid inläsning. Standard är
false.
Ladda från HTML
Lär dig hur du laddar en HTML-fil till ett MailMessage med hjälp av HtmlLoadOptions klass. Denna klass är specifikt utformad för att hantera HTML-innehåll med alternativ för att hantera resurser och lägga till vanliga textvyer.
- Initiera en instans av HtmlLoadOptions.
- Konfigurera de nödvändiga egenskaperna.
- Använd MailMessage.Load() metod för att ladda HTML-filen med de angivna alternativen.
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);
Egenskaper för HtmlLoadOptions
- PathToResources: Definierar sökvägen till katalogen som innehåller resursfiler (bilder, t.ex.).
- PreferredTextEncoding: Sätter den föredragna kodningen för meddelandets ämne och innehåll. Standardvärdet är
null. - PreserveEmbeddedMessageFormat: Avgör om formatet för inbäddade meddelanden ska bevaras. Standardvärdet är
false. - ShouldAddPlainTextView: Anger om en vanlig textvy av meddelandekroppen ska läggas till. Standardvärdet är
false.
Ladda från MHTML
Detta avsnitt förklarar hur man laddar en MHTML-fil med hjälp av MhtmlLoadOptions klass. MhtmlLoadOptions-klassen erbjuder alternativ för att hantera kodning, bevara format på inbäddade meddelanden och hantera TNEF-bilagor.
- Skapa en instans av MhtmlLoadOptions.
- Konfigurera önskade egenskaper.
- Läs in MHTML-filen med MailMessage.Load() metod.
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);
Egenskaper för MhtmlLoadOptions
- MessageFormat: Representerar e-postmeddelandets format, som kan vara EML, MSG eller MHTML. Standardvärdet är EML.
- PreferredTextEncoding: Anger föredragen kodning för meddelandets ämne och kropp. Standard är
null. - PreserveEmbeddedMessageFormat: Avgör om formatet för inbäddade meddelanden ska bevaras. Standardvärdet är
false. - PreserveTnefAttachments: Styr hur TNEF‑bilagor laddas. Standard är
false. - RemoveSignature: Anger om signaturen ska tas bort vid inläsning. Standard är
false.
Ladda från MSG
Detta avsnitt förklarar hur man laddar en MSG-fil till ett MailMessage-objekt med hjälp av MsgLoadOptions klass. MsgLoadOptions-klassen erbjuder olika egenskaper för att hantera hur MSG-filer laddas, inklusive alternativ för att bevara RTF-innehåll eller hantera TNEF-bilagor.
- Skapa en instans av MsgLoadOptions.
- Ställ in önskade egenskaper för att anpassa laddning.
- Läs in MSG‑filen med MailMessage.Load() metod.
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);
Egenskaper för MsgLoadOptions
- KeepOriginalEmailAddresses: Indikerar om ursprungliga e-postadresser ska behållas. Standardvärdet är
false. - PreferredTextEncoding: Definierar den föredragna kodningen för meddelandets ämne och innehåll. Standardvärdet är
null. - PreserveEmbeddedMessageFormat: Avgör om formatet på inbäddade meddelanden ska bevaras. Standardvärdet är
false. - PreserveRtfContent: Anger om RTF-kroppsinnehållet ska behållas i
MailMessage. Standardvärdet ärfalse. - PreserveTnefAttachments: Hanterar hur TNEF-bilagor laddas. Standardvärdet är
false. - RemoveSignature: Bestämmer om signaturen ska tas bort vid inläsning. Standardvärdet är
false. - Timeout: Begränsar formateringstiden i millisekunder under konvertering. Standardvärdet är 3000 ms.
Läs in från TNEF
Lär dig hur du laddar en TNEF eml-fil med TnefLoadOptions klass. Denna klass erbjuder alternativ för att hantera kodning och ta bort signaturer under inläsningsprocessen.
- Instansiera TnefLoadOptions.
- Konfigurera egenskaperna efter behov.
- Använd MailMessage.Load() metod för att läsa in TNEF‑filen.
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);
Egenskaper för TnefLoadOptions
- MessageFormat: Representerar e‑postmeddelandets format, såsom EML, MSG eller MHTML. Standard är EML.
- PreferredTextEncoding: Anger föredragen kodning för meddelandets ämne och kropp. Standard är
null. - PreserveEmbeddedMessageFormat: Anger om formatet för inbäddade meddelanden ska bevaras. Standard är
false. - RemoveSignature: Anger om signaturen ska tas bort vid inläsning. Standard är
false.
Upptäcka filformat
Aspose.Email API erbjuder möjligheten att upptäcka filformatet för den angivna meddelandefilen. Den DetectFileFormat metod för FileFormatUtil klass kan användas för att uppnå detta. Följande klasser och metoder kan användas för att upptäcka det inlästa filformatet.
- FileFormatType Klass
- FileFormatInfo Klass
- FileFormatUtil Klass
- FileFormatUtil.DetectFileFormat(Stream) Method
- FileFormatUtil.DetectFileFormat(String) Method
Följande kodsnutt visar hur du upptäcker filformat.
Spara och konvertera meddelanden
Aspose.Email underlättar att konvertera vilken meddelandetyp som helst till ett annat format. För att demonstrera denna funktion laddar koden i denna artikel tre typer av meddelanden från disk och sparar dem tillbaka i andra format. Bas‑klassen SaveOptions och klasserna EmlSaveOptions, MsgSaveOptions, MhtSaveOptions, HtmlSaveOptions för ytterligare inställningar vid sparande MailMessage kan användas för att spara meddelanden i andra format. Artikeln visar hur man använder dessa klasser för att spara ett exempelmail som:
- EML-format.
- Outlook MSG.
- MHTML-format.
- HTML-format.
Spara till EML
Följande kodsnutt visar hur du laddar ett EML‑meddelande och sparar det på disken i samma format.
Bevara de ursprungliga avgränsningarna
Följande kodsnutt visar hur du laddar EML och sparar som EML samtidigt som de ursprungliga gränserna bevaras.
Bevara TNEF-bilagor
Följande kodsnutt visar hur du sparar som EML och bevarar TNEF‑bilagor.
Spara EML till MSG
Följande kodsnutt visar hur du läser ett EML‑meddelande och konverterar det till MSG med det lämpliga alternativet från SaveOptions.
Bevara datum
Den MsgSaveOptions klass låter dig spara källmeddelandet som en Outlook Message-fil (MSG) med bevarande av datum. Följande kodsnutt visar hur du sparar som MSG med bevarade datum.
Spara EML till MHTML
Olika MHTML‑alternativ kan användas för att uppnå önskat resultat. Följande kodsnutt visar hur du laddar ett EML‑meddelande i MailMessage och konvertera den till MHTML med ett meddelandedatum i UTC-systemet.
// 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);
}
Konverteringsalternativ
Den MhtSaveOptions klass erbjuder ytterligare alternativ för att spara e‑postmeddelanden i MHTML-format. Enumerationen MhtFormatOptions gör det möjligt att skriva ytterligare e‑postinformation till MHTML-utdata. Följande extra fält kan skrivas:
WriteHeader– skriver e-postrubriken till utdatafilen.WriteOutlineAttachments– skriver konturbilagor till utdatafilen.WriteCompleteEmailAddress– skriver den kompletta e-postadressen till utdatafilen.NoEncodeCharacters– ingen teckenöverföringskodning bör användas.HideExtraPrintHeader– döljer extra utskriftsrubrik högst upp i utdatafilen.WriteCompleteToEmailAddress– skriver den kompletta mottagarens e-postadress till utdatafilen.WriteCompleteFromEmailAddress– skriver den kompletta avsändarens e-postadress till utdatafilen.WriteCompleteCcEmailAddress– skriver de kompletta e-postadresserna för alla carbon copy-mottagare till utdatafilen.WriteCompleteBccEmailAddress– skriver den kompletta e-postadressen för alla blind carbon copy-mottagare till utdatafilen.RenderCalendarEvent– skriver text från kalenderhändelsen till utdatafilen.SkipByteOrderMarkInBody– skriver Byte Order Mark (BOM)-byte till utdatafilen.RenderVCardInfo– skriver text från VCard AlternativeView till utdatafilen.DisplayAsOutlook– visar From-rubrik.RenderTaskFields– skriver specifika uppgiftsfält till utdatafilen.None– Ingen inställning angiven.
Följande kodsnutt visar hur du konverterar EML-filer till MHTML med valfria inställningar.
Rendera kalenderhändelser
Den MhtFormatOptions.RenderCalendarEvent renderar kalenderhändelser till MHTML‑utdata. Följande kodexempel visar hur du renderar kalenderhändelser vid konvertering till MHTML.
Exportera e‑post till MHT utan inbäddade bilder
Exportera e‑post till MHT med anpassad tidszon
MailMessage klass tillhandahåller TimeZoneOffset egenskap för att ställa in anpassad tidszon vid export till MHT. Följande kodsnutt visar hur du exporterar e‑post till MHT med anpassad tidszon.
Teckensnittsanpassning
Spara EML till HTML
Den HtmlSaveOptions klass som låter dig exportera meddelandekroppen till HTML. Följande kodsnutt visar hur du sparar ett meddelande som HTML.
Spara utan inbäddade resurser
Spara EML till OFT
Följande kodsnutt visar hur du sparar ett meddelande som en Outlook‑mall (.oft) fil.
Konvertera EML till MSG (MailMessage till MapiMessage)
För att konvertera en MailMessage objekt laddat från en EML-fil till en MapiMessage objekt, använd MapiConversionOptions klass. Denna konvertering är ofta nödvändig eftersom dessa två objekt har olika syften och tillgodoser olika behov i e‑mail‑behandling. MapiMessage är speciellt utformad för kompatibilitet med Microsoft Outlook och Exchange Server, eftersom den följer Messaging Application Programming Interface (MAPI)-formatet. Detta säkerställer att e‑mail som konverteras till MSG-filer är fullt kompatibla med Microsoft‑produkter, så att de kan öppnas, modifieras och hanteras direkt i Outlook.
Denna konvertering är också nödvändig när e‑mail måste arkiveras, indexeras eller bearbetas av lagringssystem som kräver MAPI-format, PST/OST, OLM‑lagring, till exempel. Den MapiConversionOptions klassen låter dig ange ytterligare alternativ, såsom att bevara originalmeddelandets format, behålla ursprungliga datum och komprimera RTF-kroppen under konverteringen. Följande kodexempel visar hur man laddar ett e‑mail från en fil i .eml-format och konverterar det till ett Outlook .msg-format, vilket möjliggör anpassning men säkerställer att vissa egenskaper hos original‑e‑mailet bevaras under konverteringen.
- Skapa en instans av
MapiConversionOptionsoch konfigurera dess egenskaper. - Konvertera
MailMessageobjekt till enMapiMessageobjekt med de konfigurerade konverteringsalternativen.
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);
Tillgängliga egenskaper för MapiConversionOptions
-
ASCIIFormat: Returnerar
MapiConversionOptionskonfigurerad medOutlookMessageFormatsom ASCII, medPreserveSignaturesatt till false ochUseBodyCompressionsatt till false. Detta alternativ är användbart när du behöver en konvertering till rent ASCII-format. -
UnicodeFormat: Returnerar
MapiConversionOptionsmedOutlookMessageFormatsatt till Unicode, och bådePreserveSignatureochUseBodyCompressionsatt till false. Använd detta alternativ för mer omfattande teckenstöd i MSG-filer. -
ForcedRtfBodyForAppointment: När satt till true tvingas användning av RTF-kropp för kalenderavtal. Detta är användbart om du vill säkerställa kompatibilitet med vissa e‑postklienter. Standard är true.
-
Format: Anger utskriftsformatet för MSG-filen. Det kan sättas till antingen
OutlookMessageFormat.ASCIIellerOutlookMessageFormat.Unicode, vilket styr om den konverterade MSG-filen ska använda ASCII- eller Unicode-kodning. -
PreserveEmbeddedMessageFormat: Avgör om det ursprungliga EML-formatet för inbäddade meddelanden ska behållas vid konvertering till
MapiMessage. Att sätta detta till true säkerställer att inbäddade e‑postmeddelanden behåller sin ursprungliga struktur. Standard är false. -
PreserveEmptyDates: När satt till true behåller den de ursprungliga spar- och ändringsdatumen från EML. Annars genereras nya datum om de ursprungliga är tomma.
-
PreserveOriginalAddresses: Om satt till true behålls de ursprungliga e‑postadresserna utan validering. Detta är användbart när man arbetar med e‑postadresser som kanske inte följer strikta standarder men som måste bevaras som de är. Standard är false.
-
PreserveOriginalDates: Säkerställer att de ursprungliga sändnings- och mottagningsdatumen behålls under konverteringsprocessen. Att sätta detta till true behåller dessa datum för bättre historisk noggrannhet.
-
RemoveSignature: Styr om den digitala signaturen, om närvarande, ska tas bort från meddelandet under konvertering. Standard är false, vilket betyder att signaturen behålls om den inte explicit tas bort.
-
UseBodyCompression: Aktiverar komprimering av RTF-kroppen om den är satt till true. Detta kan hjälpa till att minska storleken på MSG-filen, särskilt vid stora meddelanden med rik formatering.