Manejo de adjuntos TNEF en mensajes de correo electrónico
TNEF (Transport Neutral Encapsulation Format) es un formato propietario utilizado por Microsoft Outlook para encapsular contenido enriquecido en adjuntos, más comúnmente almacenado como winmail.dat. La API de Aspose.Email le permite leer mensajes de correo que tienen adjuntos TNEF y modificar el contenido del adjunto. El correo luego puede guardarse como un correo normal o en el mismo formato, preservando los adjuntos TNEF. Este artículo muestra diferentes ejemplos de código para trabajar con mensajes que contienen adjuntos TNEF. Este artículo también muestra cómo crear archivos EML con TNEF a partir de archivos MSG de Outlook.
Leer un mensaje con adjunto TNEF
El siguiente fragmento de código muestra cómo leer un mensaje preservando los adjuntos TNEF.
Leer un mensaje sin adjunto TNEF
El siguiente fragmento de código muestra cómo leer un mensaje sin preservar los adjuntos TNEF.
Cargar y guardar adjuntos TNEF
Con Aspose.Email para .NET, puede cargar adjuntos TNEF directamente en un MapiAttachment objeto usando una ruta de archivo o flujo, y luego guarda el objeto en formato TNEF. Esto permite la creación de archivos winmail.dat o la preservación del formato específico de Outlook en flujos de trabajo de correo electrónico.
La API proporciona los siguientes miembros en el MapiAttachment clase:
Cargar adjuntos TNEF
-
static MapiAttachment LoadFromTnef(string fileName) - Carga un adjunto TNEF desde un archivo .dat.
-
static MapiAttachment LoadFromTnef(Stream stream) - Carga un adjunto TNEF desde un flujo (p.ej., MemoryStream o flujo de archivo).
Guardar adjuntos TNEF
-
void SaveToTnef(string filename) - Guarda un MapiAttachment en un archivo TNEF.
-
void SaveToTnef(Stream stream) - Guarda un MapiAttachment en un flujo en formato TNEF.
El siguiente ejemplo de código demuestra cómo extraer un adjunto winmail.dat de un mensaje de correo, preservarlo y volver a añadirlo como adjunto al mensaje:
// message.eml contains a winmail.dat attachment, but by default, the attachment is not preserved.
var msg = MapiMessage.Load("message.eml");
var ms = new MemoryStream();
msg.Attachments[0].SaveToTnef("winmail.dat");
ms.Position = 0;
var fromtnefAttachment = MapiAttachment.LoadFromTnef(ms);
msg.Attachments.Add(fromtnefAttachment);
fromtnefAttachment = MapiAttachment.LoadFromTnef("winmail.dat");
msg.Attachments.Add(fromtnefAttachment);
Actualizar recursos en adjunto TNEF
El siguiente fragmento de código muestra cómo actualizar recursos en un adjunto TNEF y preservar el formato TNEF.
Agregar adjunto al mensaje TNEF
El siguiente fragmento de código muestra cómo añadir nuevos adjuntos al mensaje principal que contiene TNEF.
Crear EML TNEF a partir de MSG
Los MSG de Outlook a veces contienen información como tablas y estilos de texto que pueden alterarse si se convierten a EML. Crear mensajes TNEF a partir de dichos archivos MSG permite conservar el formato e incluso enviar tales mensajes mediante los clientes de correo manteniendo el formato. El MailConversionOptions.ConvertAsTnef la propiedad se usa para lograr esto. El siguiente fragmento de código muestra cómo crear EML TNEF a partir de MSG.
Para crear el TNEF, se puede usar el siguiente código de ejemplo.
Identificar mensajes en formato TNEF
El siguiente fragmento de código muestra cómo detectar si un mensaje es TNEF.
Identificar adjuntos en formato TNEF
El Attachment.IsTnef la propiedad permite detectar si el adjunto del mensaje está en formato TNEF.
var eml = MailMessage.Load(fileName);
foreach (attachment in eml.Attachments)
{
Console.WriteLine($"Is Attachment TNEF?: {attachment.IsTnef}");
}