Access & Read Embedded Email Attachments from Existing Message in Android Apps

This technical tip shows how developers can read embedded email attachments from an email message inside Android Applications. Sometimes, we get emails that have other emails embedded in them as an attachment. These embedded emails are complete messages with their own recipient list, subject, body and attachments. Furthermore, each of these messages can contain embedded messages in turn. Using Aspose.Email, developers can access each embedded message as an individual message. This article shows an example of how, using recursive functionality embedded attachments can be accessed. First of all Create an instance of the MailMessage class. Then Load the existing email message using the load() method and Call the Recursive method by passing the instance of the MailMessage class as parameter. After that Replace the invalid chars from attachment names and restrict the name to 50 chars and Save the attachment to disk using the save() method exposed by the Attachment class.
//your code here...Programming Sample for reading embedded email attachments from an existing email message public static void ReadEmbeddedAttachments() { // Base folder to load and save files used in this demo private static String strBaseFolder = Environment.getExternalStorageDirectory().getPath(); strBaseFolder = strBaseFolder + "/"; try { System.out.print("Reading message with embedded messages...."); MailMessage message = MailMessage.load(strBaseFolder + "/embedded.msg", MessageFormat.getMsg()); ParseMessage(message); System.out.println("Success"); } catch (Exception ex) { System.out.println(ex.getMessage()); } } private static void ParseMessage(MailMessage message) { System.out.println("Subject: " + message.getSubject()); System.out.println("Extracting attachments...."); for (int i = 0; i < message.getAttachments().size(); i++) { Attachment att = (Attachment) message.getAttachments().get(i); System.out.println("Attachment Name: " + att.getName()); // Get the name of attachment. If msg subject contains characters like :, /, \ etc., replace with space // because windows cannot save files with these characters // also save first 50 characters as file name to avoid long file names String attFileName = att.getName().replace(".eml", "").replace(":", " ").replace("\\", " ").replace("/", " ").replace("?", ""); if (attFileName.length() > 50) { attFileName = attFileName.substring(0, 50); } String attExt = (att.getName().substring(att.getName().lastIndexOf("."), att.getName().lastIndexOf(".") + 4)); // Save the attachment to disk + attFileName + attExt); // Check if it is an orphaned text attachment file (ATT00001.txt....) and of type eml if ((attExt.equals(".eml")) || (att.getContentType().getMediaType().equals("text/plain") && att.getName().contains(".txt") == true && att.getName().contains("ATT") == true)) { // Try to load this text file in MailMessage MailMessage attMsg = MailMessage.load(strBaseFolder + "/" + attFileName + attExt, MessageFormat.getEml()); // Call the function recursively to parse this message and attachments ParseMessage(attMsg); } } }


Language: Java | User: Sheraz Khan | Created: May 21, 2014 | Tags: Access embedded email Attachments, embed emails as an attachment, emails embedded in email, read embedded message, Load existing Email Message, Save the attachment to disk, Aspose.Email for Android Access embedded email Attachments embed emails as an attachment read embedded message Load existing Email Message Android outlook email component Save the attachment to disk