Extraire les pièces jointes du message avec Aspose.Email et Apache POI HSMF

Aspose.Email - Extraire les pièces jointes du message

Pour enregistrer les pièces jointes des messages existants :

  1. Créez une instance de la classe MailMessage.
  2. Chargez le message e-mail existant en utilisant la méthode load() de la classe MailMessage, en spécifiant le format de message correct.
  3. Créez une instance de la classe AttachmentCollection et remplissez-la avec les pièces jointes de l’instance MailMessage en utilisant la méthode getAttachments().
  4. Itérez sur la collection AttachmentCollection.
  5. Créez une instance de la classe Attachment et remplissez-la avec la valeur indexée de l’AttachmentCollection en utilisant la méthode get().
  6. Enregistrez la pièce jointe sur le disque en utilisant la méthode save() de la classe 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 - Extraire les pièces jointes du message

La classe AttachmentChunks peut être utilisée pour accéder aux pièces jointes 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();

				}

			}

		}

	}

}

Télécharger le code en cours d’exécution

Télécharger le code d’exemple