Wiki

Clone wiki

Aspose for Apache POI / Extract-Message-Attachments

Apache POI - HSMF

MAPIMessage msg = new MAPIMessage("data/message.msg");

AttachmentChunks[] attachments = msg.getAttachmentFiles();
if (attachments.length > 0)
{
    File d = new File("data/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();
                }
            }
        }
    }
}

Aspose.Email

MailMessage message = MailMessage.load("data/message.msg", MessageFormat.getMsg());

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("data/" + attFileName);
}

Download Source Code

Updated