Identify & Extract Embedded Attachment from MSG Formatted as RTF in Android

This technical tip explains how to identify and extract embedded attachment from MSG formatted as RTF. Email messages with an RTF formatted body may contain inline attachments that are either embedded as a whole object or as an icon. In order to differentiate between these two types of attachments, certain properties of the attachment need to be investigated. After meeting certain criteria based on the attachment properties, the attachment can be saved by extracting it from its ObjectData.
//your code here...This tutorial identifies and extracts embedded attachment from MSG file formatted as RTF. static void ExtractInlineAttachments() { MapiMessage message = MapiMessage.fromFile("Test.msg"); MapiAttachmentCollection attachments = message.getAttachments(); for (Object untypedAttachment : attachments) { MapiAttachment attachment = (MapiAttachment) untypedAttachment; if(IsAttachmentInline(attachment)) { try { SaveAttachment(attachment, UUID.randomUUID().toString()); } catch (IOException | FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } } static boolean IsAttachmentInline(MapiAttachment attachment) { MapiObjectProperty objectData = attachment.getObjectData(); if (objectData == null) return false; for (Object prop : attachment.getObjectData().getProperties().getValues()) { MapiProperty property = (MapiProperty)prop; if ("\u0003ObjInfo".equals(property.getName())) { byte[] data = property.getData(); int odtPersist1 = data[1] << 8 | data[0]; return (odtPersist1 & 0x40) == 0; } } return false; } static void SaveAttachment(MapiAttachment attachment, String fileName) throws IOException, FileNotFoundException { for (Object prop : attachment.getObjectData().getProperties().getValues()) { MapiProperty property = (MapiProperty)prop; if ("Package".equals(property.getName())) { FileOutputStream fs; try { fs = new FileOutputStream(fileName); fs.write(property.getData(), 0, property.getData().length); } catch (java.io.IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } }

Url: http://www.aspose.com/docs/display/emailandroid/Identify+and+Extract+Embedded+Attachment+from+MSG+Formatted+as+RTF

Language: PHP | User: Sheraz Khan | Created: Jul 9, 2014 | Tags: Identify embedded attachment in MSG, extract embedded attachment from MSG, save embedded attachment from MSG as RTF, android email API, Outlook Android component, Read PST files Identify embedded attachment in MSG extract embedded attachment from MSG save embedded attachment from MSG as RTF android email API Outlook Android component Read PST files