Extraer contenido del mensaje de correo en C#
Mostrar información del correo
El MailMessage representa un mensaje de correo electrónico y permite a los desarrolladores acceder a las propiedades del mensaje. La información del encabezado (discutida en Extrayendo encabezados de correo electrónico) puede ser extraído y manipulado de diferentes formas. Este artículo explica cómo mostrar información seleccionada de los encabezados del correo y el cuerpo del correo en pantalla. Para Mostrar información del correo en pantalla, siga estos pasos:
- Cree una instancia de la MailMessage clase.
- Cargar un mensaje de correo electrónico en el MailMessage instancia.
- Muestre el contenido del correo electrónico en la pantalla.
El siguiente fragmento de código muestra cómo mostrar la información del correo en pantalla.
// 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);
Extraer encabezados de correo
El encabezado de correo electrónico representa un conjunto estándar de campos de encabezado definidos por Internet y RFC incluidos en los mensajes de correo electrónico de Internet. Un encabezado de correo puede especificarse utilizando el MailMessage clase. Los tipos de encabezado comunes se definen en el HeaderType clase. Es una clase sellada que funciona como una enumeración normal. Para extraer encabezados de un correo, siga estos pasos:
- Cree una instancia de la MailMessage clase.
- Cargar un mensaje de correo en la instancia de MailMessage clase.
- Después de cargar un mensaje de correo, obtendremos su contenido bruto.
El MailMessage class en sí contiene propiedades como From, To, Cc, Subject, etc. Estas propiedades pueden extraerse de los encabezados.
El siguiente fragmento de código le muestra cómo extraer los encabezados del correo electrónico.
Obtener valores de encabezado decodificados
El siguiente fragmento de código muestra cómo obtener los valores de encabezado decodificados.
// 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);
Extraer cuerpo del correo
Obtener cuerpo en texto plano
El Cuerpo propiedad devuelve una representación en texto plano del cuerpo de un mensaje.
string plainTextBody = mailMessage.Body;
Nota: Si la parte MIME text/plain está presente en un mensaje, la propiedad devuelve sus datos de texto. De lo contrario, devuelve el contenido de texto separado del HtmlBody propiedad sin marcado HTML.
Obtener cuerpo HTML como texto plano
El MailMessage clase proporciona la funcionalidad para extraer el cuerpo HTML del mensaje como texto plano. El MailMessage clase proporciona un GetHtmlBodyText método que devuelve el cuerpo HTML en texto plano. Este método analiza el HtmlBody propiedad y devuelve contenido de texto plano separado ignorando el marcado HTML. El GetHtmlBodyText el método acepta un parámetro booleano que indica si el cuerpo debe contener URL o no. Pasar el parámetro como verdadero indica que el cuerpo HTML debe contener URL.
El siguiente fragmento de código demuestra el uso de GetHtmlBodyText método para extraer el cuerpo HTML del correo como texto plano.
// 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);
Acceder a la dirección X.500 de Exchange
El MailAddress clase tiene el X500Address propiedad diseñada para exponer direcciones formateadas X.500 de Exchange si están presentes en un mensaje. Proporciona acceso de solo lectura a la cadena de dirección X.500 (Exchange) para MailAddress instancias y devuelve la dirección X.500 si está incluida en los metadatos del mensaje, de lo contrario devuelve nulo o vacío. No se requiere análisis — la propiedad devuelve la cadena X.500 cruda.
var mailMessage = MailMessage.Load(fileName);
string exaddr = mailMessage.From.X500Address;