E‑mailberichtinhoud extraheren in C#
E‑mailinformatie weergeven
De MailMessage vertegenwoordigt een e‑mailbericht en stelt ontwikkelaars in staat om de eigenschappen van het bericht te benaderen. De header‑informatie (besproken in E‑mailheaders Extracten) kan op verschillende manieren worden geëxtraheerd en gemanipuleerd. Dit artikel legt uit hoe u geselecteerde e‑mailheader‑informatie en de e‑mailbody op het scherm weergeeft. Volg deze stappen om e‑mailinformatie op het scherm te tonen:
- Maak een instantie van de MailMessage klasse.
- Laad een e‑mailbericht in de MailMessage instantie.
- Geef de e‑mailinhoud weer op het scherm.
Het onderstaande code‑fragment laat zien hoe u e‑mailinformatie op het scherm weergeeft.
// Create MailMessage instance by loading an Eml file
var message = MailMessage.Load("test.eml", new EmlLoadOptions());
// Gets the sender info, recipient info, Subject, htmlbody and textbody
Console.Write("From:");
Console.WriteLine(message.From);
Console.Write("To:");
Console.WriteLine(message.To);
Console.Write("Subject:");
Console.WriteLine(message.Subject);
Console.WriteLine("HtmlBody:");
Console.WriteLine(message.HtmlBody);
Console.WriteLine("TextBody");
Console.WriteLine(message.Body);
E‑mail‑headers extraheren
De e‑mailheader vertegenwoordigt een door internet en RFC gedefinieerde standaardset van header‑velden die in internet‑e‑mailberichten zijn opgenomen. Een e‑mailheader kan worden gespecificeerd met behulp van de MailMessage klasse. Veelvoorkomende headertypen worden gedefinieerd in de HeaderType klasse. Het is een sealed‑klasse die werkt als een normale enumeratie. Om headers uit een e‑mail te extraheren, volg deze stappen:
- Maak een instantie van de MailMessage klasse.
- Laad een e‑mailbericht in de instantie van MailMessage klasse.
- Nadat een e‑mailbericht is geladen, halen we de ruwe inhoud op.
De MailMessage class zelf bevat eigenschappen zoals From, To, Cc, Subject enzovoort. Deze eigenschappen kunnen uit de headers worden geëxtraheerd.
Het volgende codefragment toont hoe je e‑mailheaders kunt extraheren.
Gedecodeerde headerwaarden ophalen
De onderstaande code‑fragment toont hoe u gedecodeerde header‑waarden verkrijgt.
// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-.NET
MailMessage mailMessage = MailMessage.Load(dataDir + "emlWithHeaders.eml");
string decodedValue = mailMessage.Headers.GetDecodedValue("Thread-Topic");
Console.WriteLine(decodedValue);
E‑mail‑body extraheren
Platte‑tekst‑body ophalen
De Body eigenschap retourneert een platte‑tekst‑representatie van een berichtbody.
string plainTextBody = mailMessage.Body;
Opmerking: Als het text/plain‑MIME‑deel aanwezig is in een bericht, retourneert de eigenschap de tekstgegevens. Anders retourneert het de gescheiden tekstinhoud van de HtmlBody eigenschap zonder HTML‑opmaak.
HTML‑body als platte tekst ophalen
De MailMessage klasse biedt de functie om de HTML‑body van het bericht te extraheren als platte tekst. De MailMessage klasse biedt een GetHtmlBodyText methode die de HTML‑body in platte tekst retourneert. Deze methode parseert de HtmlBody eigenschap die gescheiden platte‑tekst‑inhoud retourneert, waarbij de HTML‑opmaak wordt genegeerd. De GetHtmlBodyText methode accepteert een boolean‑parameter die aangeeft of de body URL’s moet bevatten of niet. Het doorgeven van true betekent dat de HTML‑body URL’s moet bevatten.
De volgende code‑snippet demonstreert het gebruik van GetHtmlBodyText methode om de HTML‑body van de e‑mail te extraheren als platte tekst.
// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-.NET
// The path to the File directory.
string dataDir = RunExamples.GetDataDir_Email();
MailMessage mail = MailMessage.Load(dataDir + "HtmlWithUrlSample.eml");
string body_with_url = mail.GetHtmlBodyText(true);// body will contain URL
string body_without_url = mail.GetHtmlBodyText(false);// body will not contain URL
Console.WriteLine("Body with URL: " + body_with_url);
Console.WriteLine("Body without URL: " + body_without_url);
Toegang tot X.500 Exchange‑adres
De MailAddress klasse heeft de X500Address eigenschap die is gebouwd om Exchange X.500‑geformatteerde adressen bloot te leggen indien aanwezig in een bericht. Het biedt alleen‑lezen toegang tot de X.500 (Exchange)‑adresstring voor MailAddress instanties en retourneert het X.500‑adres als dit in de berichtmetadata is opgenomen, anders wordt null of leeg geretourneerd. Geen parsing vereist – de eigenschap retourneert de ruwe X.500‑string.
var mailMessage = MailMessage.Load(fileName);
string exaddr = mailMessage.From.X500Address;