E‑Mail‑Nachrichteninhalt in C# extrahieren
E‑Mail‑Informationen anzeigen
Die MailMessage repräsentiert eine E‑Mail‑Nachricht und ermöglicht Entwicklern den Zugriff auf die Eigenschaften der Nachricht. Die Header‑Informationen (besprochen in Extrahieren von E‑Mail‑Headern) können auf verschiedene Weise extrahiert und manipuliert werden. Dieser Artikel erklärt, wie ausgewählte E‑Mail‑Header‑Informationen und der E‑Mail‑Body auf dem Bildschirm angezeigt werden. Um E‑Mail‑Informationen auf dem Bildschirm anzuzeigen, folgen Sie diesen Schritten:
- Erstellen Sie eine Instanz von dem MailMessage Klasse.
- Laden Sie eine E‑Mail‑Nachricht in die MailMessage Instanz.
- Zeigen Sie den E‑Mail‑Inhalt auf dem Bildschirm an.
Das folgende Code‑Snippet zeigt, wie Sie E‑Mail‑Informationen auf dem Bildschirm anzeigen.
// 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‑Header extrahieren
Der E‑Mail‑Header stellt einen vom Internet und RFC definierten Standardsatz von Header‑Feldern dar, die in Internet‑E‑Mail‑Nachrichten enthalten sind. Ein E‑Mail‑Header kann mit dem MailMessage Klasse. Gängige Header‑Typen sind definiert in der HeaderType Klasse. Es ist eine versiegelte Klasse, die wie eine normale Aufzählung arbeitet. Um Header aus einer E‑Mail zu extrahieren, führen Sie folgende Schritte aus:
- Erstellen Sie eine Instanz von dem MailMessage Klasse.
- Laden Sie eine E‑Mail‑Nachricht in der Instanz von MailMessage Klasse.
- Nachdem eine E‑Mail‑Nachricht geladen wurde, erhalten wir deren Rohinhalt.
Die MailMessage Die Klasse selbst enthält Eigenschaften wie From, To, Cc, Subject usw. Diese Eigenschaften können aus den Kopfzeilen extrahiert werden.
Der folgende Codeausschnitt zeigt, wie man E‑Mail‑Header extrahiert.
Dekodierte Header‑Werte abrufen
Das folgende Code‑Snippet zeigt, wie Sie dekodierte Kopfzeilenwerte erhalten.
// 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 extrahieren
Klartext‑Body erhalten
Die Body Eigenschaft gibt eine Klartextdarstellung des Nachrichtenkörpers zurück.
string plainTextBody = mailMessage.Body;
Hinweis: Wenn ein text/plain‑MIME‑Teil in einer Nachricht vorhanden ist, liefert die Eigenschaft dessen Textdaten. Andernfalls gibt sie den getrennten Textinhalt aus dem HtmlBody Eigenschaft ohne HTML‑Markup.
HTML‑Body als Klartext erhalten
Die MailMessage Klasse bietet die Funktion, den HTML‑Body der Nachricht als Klartext zu extrahieren. Das MailMessage Klasse stellt ein GetHtmlBodyText Methode, die den HTML‑Body als Klartext zurückgibt. Diese Methode analysiert das HtmlBody Eigenschaft, die getrennten Klartextinhalt zurückgibt und das HTML‑Markup ignoriert. Die GetHtmlBodyText Methode akzeptiert einen booleschen Parameter, der angibt, ob der Body URLs enthalten soll oder nicht. Wird der Parameter auf true gesetzt, enthält der HTML‑Body URLs.
Das folgende Code‑Snippet demonstriert die Verwendung von GetHtmlBodyText Methode, um den HTML‑Body der E‑Mail als Klartext zu extrahieren.
// 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);
Zugriff auf X.500 Exchange‑Adresse
Die MailAddress Klasse hat die X500Address Eigenschaft, die entwickelt wurde, um Exchange X.500‑formatierte Adressen, falls in einer Nachricht vorhanden, offenzulegen. Sie bietet schreibgeschützten Zugriff auf die X.500‑(Exchange‑)Adresszeichenkette für MailAddress Instanzen und gibt die X.500‑Adresse zurück, falls sie in den Nachrichten‑Metadaten enthalten ist, andernfalls wird null oder ein leerer Wert zurückgegeben. Keine Analyse erforderlich – die Eigenschaft gibt die rohe X.500‑Zeichenkette zurück.
var mailMessage = MailMessage.Load(fileName);
string exaddr = mailMessage.From.X500Address;