E‑mailbericht laden en opslaan

E‑mailbericht laden

Laden vanuit EML

Deze sectie beschrijft hoe je een EML‑bestand in een MailMessage‑object laadt met behulp van de EmlLoadOptions klasse. De EmlLoadOptions‑klasse biedt verschillende opties om aan te passen hoe het EML‑bestand wordt geladen, zoals het behouden van ingesloten berichtformaten of het beheersen van het laadgedrag van TNEF‑bijlagen.

  1. Initialiseer een instantie van EmlLoadOptions.
  2. Configureer de laadopties naar behoefte.
  3. Gebruik de MailMessage.Load() methode om het EML‑bestand te laden met de opgegeven opties.
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);

Eigenschappen van EmlLoadOptions

  • PreferredTextEncoding: Stelt de voorkeurs‑codering in voor onderwerp en body van het bericht. Standaard is null.
  • PreserveEmbeddedMessageFormat: Geeft aan of het formaat van ingesloten berichten behouden moet blijven tijdens het laden. Standaard is false.
  • PreserveTnefAttachments: Beheert het laadgedrag van TNEF‑bijlagen. Standaard is false.
  • RemoveSignature: Geeft aan of de handtekening moet worden verwijderd tijdens het laden. Standaard is false.

Ingesloten berichtformaat behouden

Laad bericht met handtekening/zonder handtekening

Handtekeningbehoud wordt standaard ondersteund bij het laden van EML-bestanden. Om de handtekening te verwijderen, kunt u de LoadOptions.RemoveSignature eigenschap naar true.

Het onderstaande codevoorbeeld laat zien hoe u een handtekening verwijdert bij het laden van een bericht:

var msg = MailMessage.Load(fileName, new EmlLoadOptions() { RemoveSignature = true});

Laad van EMLX

De volgende sectie behandelt het laden van een EMLX-bestand met de EmlxLoadOptions klasse. Deze klasse biedt opties vergelijkbaar met EmlLoadOptions, met controle over codering, handtekeningverwijdering en meer.

  1. Instantieer de EmlxLoadOptions.
  2. Configureer eigenschappen zoals nodig.
  3. Gebruik de MailMessage.Load() methode om het EMLX-bestand te laden.
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);

Eigenschappen van EmlxLoadOptions

  • PreferredTextEncoding: Stelt de voorkeurs‑codering in voor onderwerp en body van het bericht. Standaard is null.
  • PreserveEmbeddedMessageFormat: Geeft aan of het formaat van ingesloten berichten moet worden behouden. Standaard is false.
  • RemoveSignature: Geeft aan of de handtekening moet worden verwijderd tijdens het laden. Standaard is false.

Laad van HTML

Leer hoe u een HTML-bestand in een MailMessage laadt met de HtmlLoadOptions klasse. Deze klasse is specifiek ontworpen om HTML-inhoud te verwerken met opties om hulpbronnen te beheren en platte-tekstweergaven toe te voegen.

  1. Initialiseer een instantie van HtmlLoadOptions.
  2. Configureer de benodigde eigenschappen.
  3. Gebruik de MailMessage.Load() methode om het HTML-bestand te laden met de opgegeven opties.
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);

Eigenschappen van HtmlLoadOptions

  • PathToResources: Definieert het pad naar de map met hulpbronbestanden (bijv. afbeeldingen).
  • PreferredTextEncoding: Stelt de voorkeurscodering in voor onderwerp en inhoud van het bericht. Standaard is null.
  • PreserveEmbeddedMessageFormat: Bepaalt of het formaat van ingesloten berichten behouden moet blijven. Standaard is false.
  • ShouldAddPlainTextView: Geeft aan of er een platte-tekstweergave van de berichtinhoud moet worden toegevoegd. Standaard is false.

Laad van MHTML

Deze sectie legt uit hoe u een MHTML-bestand laadt met behulp van de MhtmlLoadOptions klasse. De MhtmlLoadOptions-klasse biedt opties om codering te beheren, indelingen van ingesloten berichten te behouden en TNEF-bijlagen af te handelen.

  1. Maak een instantie van MhtmlLoadOptions.
  2. Configureer de gewenste eigenschappen.
  3. Laad het MHTML‑bestand met de MailMessage.Load() methode.
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);

Eigenschappen van MhtmlLoadOptions

  • MessageFormat: Vertegenwoordigt het e-mailberichtformaat, dat EML, MSG of MHTML kan zijn. Standaard is EML.
  • PreferredTextEncoding: Stelt de voorkeurs‑codering in voor onderwerp en body van het bericht. Standaard is null.
  • PreserveEmbeddedMessageFormat: Bepaalt of het formaat van ingesloten berichten behouden moet blijven. Standaard is false.
  • PreserveTnefAttachments: Beheert het laadgedrag van TNEF‑bijlagen. Standaard is false.
  • RemoveSignature: Geeft aan of de handtekening moet worden verwijderd tijdens het laden. Standaard is false.

Laad van MSG

Deze sectie legt uit hoe u een MSG-bestand in een MailMessage-object laadt met behulp van de MsgLoadOptions klasse. De MsgLoadOptions-klasse biedt diverse eigenschappen om te bepalen hoe MSG-bestanden worden geladen, inclusief opties om RTF-inhoud te behouden of TNEF-bijlagen te beheren.

  1. Maak een instantie van MsgLoadOptions.
  2. Stel de gewenste eigenschappen in om het laden aan te passen.
  3. Laad het MSG‑bestand met de MailMessage.Load() methode.
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);

Eigenschappen van MsgLoadOptions

  • KeepOriginalEmailAddresses: Geeft aan of originele e-mailadressen behouden moeten blijven. Standaard is false.
  • PreferredTextEncoding: Definieert de voorkeurscodering voor onderwerp en inhoud van het bericht. Standaard is null.
  • PreserveEmbeddedMessageFormat: Bepaalt of het formaat van ingesloten berichten behouden moet blijven. Standaard is false.
  • PreserveRtfContent: Geeft aan of RTF-lichaamsinhoud behouden moet blijven in de MailMessage. Standaard is false.
  • PreserveTnefAttachments: Beheert het laadgedrag van TNEF-bijlagen. Standaard is false.
  • RemoveSignature: Bepaalt of de handtekening tijdens het laden moet worden verwijderd. Standaard is false.
  • Time‑out: Beperkt de opmaaktijd in milliseconden tijdens conversie. Standaard is 3000 ms.

Laden uit TNEF

Leer hoe u een TNEF eml-bestand laadt met de TnefLoadOptions klasse. Deze klasse biedt opties om codering te beheren en handtekeningen te verwijderen tijdens het laadproces.

  1. Instantieer de TnefLoadOptions.
  2. Configureer de eigenschappen naar behoefte.
  3. Gebruik de MailMessage.Load() methode om het TNEF‑bestand te laden.
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);

Eigenschappen van TnefLoadOptions

  • MessageFormat: Vertegenwoordigt het e‑mailberichtformaat, zoals EML, MSG of MHTML. Standaard is EML.
  • PreferredTextEncoding: Stelt de voorkeurs‑codering in voor onderwerp en body van het bericht. Standaard is null.
  • PreserveEmbeddedMessageFormat: Geeft aan of het formaat van ingesloten berichten moet worden behouden. Standaard is false.
  • RemoveSignature: Geeft aan of de handtekening moet worden verwijderd tijdens het laden. Standaard is false.

Detectie van bestandsformaten

Aspose.Email API biedt de mogelijkheid om het bestandsformaat van het geleverde berichtbestand te detecteren. De DetectFileFormat methode van FileFormatUtil klasse kan hiervoor worden gebruikt. De volgende klassen en methoden kunnen worden gebruikt om het geladen bestandsformaat te detecteren.

Het volgende codefragment laat zien hoe je bestandsformaten kunt detecteren.

Berichten opslaan en converteren

Aspose.Email maakt het eenvoudig om elk berichttype naar een ander formaat te converteren. Om deze functie te demonstreren, laadt de code in dit artikel drie soorten berichten van de schijf en slaat ze op in andere formaten. De basisklasse SaveOptions en de klassen EmlSaveOptions, MsgSaveOptions, MhtSaveOptions, HtmlSaveOptions voor extra instellingen bij het opslaan MailMessage kan worden gebruikt om berichten op te slaan naar andere formaten. Het artikel laat zien hoe je deze klassen gebruikt om een voorbeeld‑e‑mail op te slaan als:

  • EML‑formaat.
  • Outlook MSG.
  • MHTML‑formaat.
  • HTML‑formaat.

Opslaan als EML

Het volgende codefragment toont hoe je een EML‑bericht kunt laden en het op schijf opslaat in hetzelfde formaat.

Behoud de oorspronkelijke grenzen

Het volgende codefragment toont hoe je EML laadt en opslaat als EML waarbij de oorspronkelijke grenzen behouden blijven.

Behoud TNEF-bijlagen

Het volgende codefragment toont hoe je opslaat als EML met behoud van TNEF‑bijlagen.

Sla EML op als MSG

De onderstaande code‑fragment toont hoe u een EML‑bericht laadt en converteert naar MSG met de juiste optie uit SaveOptions.

Behoud data

De MsgSaveOptions klasse stelt u in staat om het bronbericht op te slaan als een Outlook-berichtbestand (MSG) waarbij data behouden blijven. Het volgende codefragment laat zien hoe u opslaat als MSG met bewaarde data.

Opslaan EML als MHTML

Verschillende MHTML‑opties kunnen worden gebruikt om het gewenste resultaat te bereiken. Het volgende codefragment toont hoe je een EML‑bericht laadt in MailMessage en converteer het naar MHTML met een berichtdatum in het UTC‑systeem.

// 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);
}

Conversie‑opties

De MhtSaveOptions klasse biedt extra opties voor het opslaan van e‑mailberichten in MHTML‑formaat. De enumerator MhtFormatOptions maakt het mogelijk om extra e‑mailinformatie naar het uitvoer‑MHTML te schrijven. De volgende extra velden kunnen worden geschreven:

  • WriteHeader – schrijft de e‑mailheader naar het uitvoerbestand.
  • WriteOutlineAttachments – schrijft outline‑bijlagen naar het uitvoerbestand.
  • WriteCompleteEmailAddress – schrijft het volledige e‑mailadres naar het uitvoerbestand.
  • NoEncodeCharacters – er mag geen overdrachtscodering van tekens worden gebruikt.
  • HideExtraPrintHeader – verberg extra afdrukkop bovenaan het uitvoerbestand.
  • WriteCompleteToEmailAddress – schrijft het volledige e‑mailadres van de ontvanger naar het uitvoerbestand.
  • WriteCompleteFromEmailAddress – schrijft het volledige e‑mailadres van de afzender naar het uitvoerbestand.
  • WriteCompleteCcEmailAddress – schrijft de volledige e‑mailadressen van alle CC‑ontvangers naar het uitvoerbestand.
  • WriteCompleteBccEmailAddress – schrijft het volledige e‑mailadres van alle BCC‑ontvangers naar het uitvoerbestand.
  • RenderCalendarEvent – schrijft tekst van het agenda‑event naar het uitvoerbestand.
  • SkipByteOrderMarkInBody – schrijft Byte Order Mark (BOM)-bytes naar het uitvoerbestand.
  • RenderVCardInfo – schrijft tekst van VCard AlternativeView naar het uitvoerbestand.
  • DisplayAsOutlook – toont From-header.
  • RenderTaskFields – schrijft specifieke taakvelden naar het uitvoerbestand.
  • None – Geen instelling gespecificeerd.

Het volgende codefragment toont hoe je EML‑bestanden converteert naar MHTML met optionele instellingen.

Render kalender‑events

De MhtFormatOptions.RenderCalendarEvent rendert de agenda‑evenementen naar de MHTML‑output. Het volgende codefragment toont hoe je agenda‑evenementen rendert tijdens de conversie naar MHTML.

E‑mail exporteren naar MHT zonder inline‑afbeeldingen

E‑mail exporteren naar MHT met aangepaste tijdzone

MailMessage class biedt de TimeZoneOffset eigenschap om een aangepaste tijdzone in te stellen bij het exporteren naar MHT. Het volgende codefragment toont hoe u e‑mail kunt exporteren naar MHT met een aangepaste tijdzone.

Lettertype‑aanpassing

Opslaan EML als HTML

De HtmlSaveOptions klasse waarmee u de berichtinhoud kunt exporteren naar HTML. Het volgende codefragment toont hoe u een bericht kunt opslaan als HTML.

Opslaan zonder ingesloten bronnen

Opslaan EML als OFT

Het volgende codefragment toont hoe u een bericht opslaat als een Outlook‑template (.oft) bestand.

Convert EML naar MSG (MailMessage naar MapiMessage)

Om een te converteren MailMessage object geladen vanuit een EML‑bestand naar een MapiMessage object, gebruik de MapiConversionOptions klasse. Deze conversie is vaak nodig omdat deze twee objecten verschillende doeleinden dienen en inspelen op uiteenlopende behoeften bij e‑mailverwerking. MapiMessage is specifiek ontworpen voor compatibiliteit met Microsoft Outlook en Exchange Server, omdat het voldoet aan de Messaging Application Programming Interface (MAPI)‑specificatie. Dit zorgt ervoor dat e‑mails die naar MSG‑bestanden zijn geconverteerd volledig compatibel zijn met Microsoft‑producten, zodat ze direct in Outlook kunnen worden geopend, gewijzigd en beheerd.

Deze conversie is ook noodzakelijk wanneer e‑mails moeten worden gearchiveerd, geïndexeerd of verwerkt door opslagmedia die het MAPI‑formaat vereisen, zoals PST/OST‑ of OLM‑opslag. De MapiConversionOptions klasse stelt u in staat om extra opties op te geven, zoals het behouden van het oorspronkelijke berichtformaat, het bewaren van originele datums en het comprimeren van de RTF‑body tijdens conversie. Het onderstaande code‑voorbeeld toont hoe u een e‑mail uit een bestand in .eml‑formaat laadt en converteert naar een Outlook .msg‑formaat, waarmee aanpassing mogelijk is maar toch wordt gegarandeerd dat bepaalde kenmerken van de originele e‑mail behouden blijven tijdens de conversie.

  1. Maak een instantie van MapiConversionOptions en configureer de eigenschappen.
  2. Converteer de MailMessage object naar een MapiMessage object dat de geconfigureerde conversie‑opties gebruikt.
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);

Beschikbare eigenschappen van MapiConversionOptions

  • ASCIIFormat: Retourneert MapiConversionOptions geconfigureerd met OutlookMessageFormat als ASCII, met PreserveSignature zet op false en UseBodyCompression zet op false. Deze optie is nuttig wanneer u een eenvoudige ASCII‑formaatconversie nodig heeft.

  • UnicodeFormat: Retourneert MapiConversionOptions met OutlookMessageFormat zet op Unicode, en beide PreserveSignature en UseBodyCompression zet op false. Gebruik deze optie voor meer volledige tekenondersteuning in MSG‑bestanden.

  • ForcedRtfBodyForAppointment: Als dit op true staat, wordt het gebruik van RTF‑lichaam voor agenda‑afspraken afgedwongen. Handig als u compatibiliteit met bepaalde mailclients wilt garanderen. Standaard is true.

  • Format: Specificeert het uitvoerformaat voor het MSG‑bestand. Het kan ingesteld worden op OutlookMessageFormat.ASCII of OutlookMessageFormat.Unicode, waarmee wordt bepaald of de geconverteerde MSG ASCII of Unicode‑codering moet gebruiken.

  • PreserveEmbeddedMessageFormat: Bepaalt of het originele EML‑formaat van ingesloten berichten behouden moet blijven tijdens conversie naar MapiMessage. Dit op true zetten zorgt ervoor dat ingesloten e‑mails hun oorspronkelijke structuur behouden. Standaard is false.

  • PreserveEmptyDates: Als dit op true staat, behoudt het de oorspronkelijke opslaan‑ en wijzigingsdatums van de EML. Anders worden nieuwe datums gegenereerd als de oorspronkelijke leeg zijn.

  • PreserveOriginalAddresses: Als dit op true staat, worden de originele e‑mailadressen behouden zonder validatie. Dit is nuttig bij e‑mailadressen die niet aan strikte normen voldoen maar ongewijzigd moeten blijven. Standaard is false.

  • PreserveOriginalDates: Zorgt ervoor dat de oorspronkelijke verzend- en ontvangstdatums behouden blijven tijdens het conversieproces. Deze op true zetten behoudt deze datums voor betere historische nauwkeurigheid.

  • RemoveSignature: Regelt of de digitale handtekening, indien aanwezig, wordt verwijderd uit het bericht tijdens conversie. Standaard is false, wat betekent dat de handtekening behouden blijft tenzij expliciet verwijderd.

  • UseBodyCompression: Schakelt RTF-lichaamcompressie in als dit op true staat. Dit kan helpen de grootte van het MSG‑bestand te verkleinen, vooral bij grote berichten met rijke opmaak.