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.

  1. Initiera en instans av EmlLoadOptions.
  2. Konfigurera inläsningsalternativen efter behov.
  3. 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

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.

  1. Instansiera EmlxLoadOptions.
  2. Konfigurera egenskaper vid behov.
  3. 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

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.

  1. Initiera en instans av HtmlLoadOptions.
  2. Konfigurera de nödvändiga egenskaperna.
  3. 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.

  1. Skapa en instans av MhtmlLoadOptions.
  2. Konfigurera önskade egenskaper.
  3. 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

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.

  1. Skapa en instans av MsgLoadOptions.
  2. Ställ in önskade egenskaper för att anpassa laddning.
  3. 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 är false.
  • 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.

  1. Instansiera TnefLoadOptions.
  2. Konfigurera egenskaperna efter behov.
  3. 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.

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.

  1. Skapa en instans av MapiConversionOptions och konfigurera dess egenskaper.
  2. Konvertera MailMessage objekt till en MapiMessage objekt 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 MapiConversionOptions konfigurerad med OutlookMessageFormat som ASCII, med PreserveSignature satt till false och UseBodyCompression satt till false. Detta alternativ är användbart när du behöver en konvertering till rent ASCII-format.

  • UnicodeFormat: Returnerar MapiConversionOptions med OutlookMessageFormat satt till Unicode, och både PreserveSignature och UseBodyCompression satt 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.ASCII eller OutlookMessageFormat.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.