Extraer adjuntos del mensaje usando Aspose.Email y Apache POI HSMF

Aspose.Email - Extraer archivos adjuntos del mensaje

Para guardar los archivos adjuntos de mensajes existentes:

  1. Cree una instancia de la clase MailMessage.
  2. Cargue el mensaje de correo existente usando el método load() de la clase MailMessage, especificando el MessageFormat correcto.
  3. Cree una instancia de la clase AttachmentCollection y llénela con los archivos adjuntos de la instancia MailMessage usando el método getAttachments().
  4. Itere sobre la colección AttachmentCollection.
  5. Cree una instancia de la clase Attachment y llénela con el valor indexado de AttachmentCollection usando el método get().
  6. Guarde el archivo adjunto en disco usando el método save() de la clase Attachment.

Java

 MailMessage message = MailMessage.load(dataDir + \"message.msg\");

System.out.println(\"Extracting attachments....\");

for (int i = 0; i < message.getAttachments().size(); i++)

{

    Attachment att = (Attachment) message.getAttachments().get_Item(i);

    System.out.println("Attachment Name: " + att.getName());

    String attFileName = att.getName().replace(".eml", "").replace(":", " ").replace("\\", " ").replace("/", " ").replace("?", "");

    // Save the attachment to disk

    att.save(dataDir + attFileName);

}

Apache POI HSMF - Extraer archivos adjuntos del mensaje

La clase AttachmentChunks puede usarse para acceder a los archivos adjuntos de MAPIMessage.

Java

 MAPIMessage msg = new MAPIMessage(dataDir + \"message.msg\");

AttachmentChunks[] attachments = msg.getAttachmentFiles();

if (attachments.length > 0)

{

	File d = new File(dataDir + "attachments");

	if (d.exists() || d.mkdir())

	{

		for (AttachmentChunks attachment : attachments)

		{

			String fileName = attachment.attachFileName.toString();

			if (attachment.attachLongFileName != null)

			{

				fileName = attachment.attachLongFileName.toString();

			}

			File f = new File(d, fileName);

			OutputStream fileOut = null;

			try

			{

				fileOut = new FileOutputStream(f);

				fileOut.write(attachment.attachData.getValue());

			}

			finally

			{

				if (fileOut != null)

				{

					fileOut.close();

				}

			}

		}

	}

}

Descargar código en ejecución

Descargar código de muestra