Извлечение вложений сообщений с использованием Aspose.Email и Apache POI HSMF
Contents
[
Hide
]
Aspose.Email - Извлечение вложений сообщений
Чтобы сохранить вложения из существующих сообщений:
- Создайте экземпляр класса MailMessage.
- Загрузите существующее(email) сообщение с помощью метода load() класса MailMessage, указав правильный формат сообщения.
- Создайте экземпляр класса AttachmentCollection и заполните его вложениями из экземпляра MaiMessage с помощью метода getAttachments().
- Переберите коллекцию AttachmentCollection.
- Создайте экземпляр класса Attachment и заполните его индексированным значением из AttachmentCollection с помощью метода get().
- Сохраните вложение на диск с помощью метода save() класса Attachment.
Java
MailMessage message = MailMessage.load(dataDir + "message.msg");
System.out.println("Извлечение вложений....");
for (int i = 0; i < message.getAttachments().size(); i++)
{
Attachment att = (Attachment) message.getAttachments().get_Item(i);
System.out.println("Имя вложения: " + att.getName());
String attFileName = att.getName().replace(".eml", "").replace(":", " ").replace("\\", " ").replace("/", " ").replace("?", "");
// Сохраните вложение на диск
att.save(dataDir + attFileName);
}
Apache POI HSMF - Извлечение вложений сообщений
Класс AttachmentChunks можно использовать для доступа к вложениям 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();
}
}
}
}
}
Скачать работающий код
Скачать пример кода
Для получения дополнительных деталей посетите Управление вложениями в электронном сообщении.