Leer archivos adjuntos de correo electrónico incrustados desde un mensaje en Aspose.Email
Contents
[
Hide
]
Aspose.Email - Leer archivos adjuntos de correo electrónico incrustados desde un mensaje
A veces, recibimos correos electrónicos con otros correos electrónicos incrustados en ellos como archivos adjuntos. Estos correos electrónicos incrustados son mensajes completos con su propia lista de destinatarios, asunto, cuerpo e incluso archivos adjuntos. Cada uno de estos mensajes también puede contener mensajes incrustados. Usando Aspose.Email Java, los desarrolladores pueden acceder a cada mensaje incrustado como un mensaje individual. Este ejemplo muestra cómo utilizar la funcionalidad recursiva.
Java
MailMessage message = MailMessage.load(dataDir + "embedded.msg", MessageFormat.getMsg());
for (int i = 0; i < message.getAttachments().size(); i++)
{
Attachment att = (Attachment) message.getAttachments().get_Item(i);
System.out.println("Nombre del archivo adjunto: " + att.getName());
// Obtener el nombre del archivo adjunto. Si el asunto del msg contiene caracteres como :, /, \, etc., reemplazar por espacio
// porque windows no puede guardar archivos con estos caracteres
// también guardar los primeros 50 caracteres como nombre de archivo para evitar nombres de archivo largos
String attFileName = att.getName().replace(".eml", "").replace(":", " ").replace("\\", " ").replace("/", " ").replace("?", "");
if (attFileName.length() > 50)
{
attFileName = attFileName.substring(0, 50);
}
String attExt = (att.getName().substring(att.getName().lastIndexOf("."), att.getName().lastIndexOf(".") + 4));
// Guardar el archivo adjunto en disco
att.save(dataPath + attFileName + attExt);
// Comprobar si es un archivo de texto adjunto huérfano (ATT00001.txt....) y de tipo eml
if ((attExt.equals(".eml")) || (att.getContentType().getMediaType().equals("text/plain") && att.getName().contains(".txt") == true && att.getName().contains("ATT") == true))
{
// Intentar cargar este archivo de texto en MailMessage
MailMessage attMsg = MailMessage.load(dataPath + attFileName + attExt, MessageFormat.getEml());
// Llamar a la función recursivamente para analizar este mensaje y los archivos adjuntos
ParseMessage(attMsg);
}
}
Descargar Código en Ejecución
Descargar Código de Muestra
Para más detalles, visita Leer archivos adjuntos de correo electrónico incrustados desde un mensaje.