MAPIMessage msg = new MAPIMessage(new NPOIFSFileSytem(new File("test.msg"))); if (msg.attachmentChunks != null) { int number = 0; for (AttachmentChunk att : msg.attachmentChunks) { if (att.attachmentDirectory != null) { number++; POIFSFileSystem newMsg = new POIFSFileSystem(); EntryUtils.copyNodes( att.attachmentDirectory, newMsg.getRoot() ); FileOutputStream out = new FileOutputStream("embedded-" + number + ".msg"); newMsg.write(out); out.close(); } } }