List of usage examples for org.apache.poi.hsmf MAPIMessage getAttachmentFiles
public AttachmentChunks[] getAttachmentFiles()
From source file:com.github.n_i_e.dirtreedb.MsgLister.java
License:Apache License
@Override protected PathEntry getNext() throws IOException { try {//from w w w.j a v a 2s . c om if (content == null) { MAPIMessage msg; msg = new MAPIMessage(inf); date = msg.getMessageDate() == null ? 0L : msg.getMessageDate().getTimeInMillis(); subject = msg.getSubject(); String s = subjectToFilename(subject, "text/plain", 1); s = s.replace("\\", "/"); Assertion.assertAssertionError(!s.equals("")); PathEntry next_entry = new PathEntry(getBasePath().getPath() + "/" + s, PathEntry.COMPRESSEDFILE); next_entry.setDateLastModified(date); next_entry.setStatus(PathEntry.DIRTY); byte[] body = getByteArrayWithBom(msg.getTextBody()); next_entry.setCompressedSize(body.length); next_entry.setSize(next_entry.getSize()); instream = new ByteArrayInputStreamWithCascadingClose(body); if (isCsumRequested()) { next_entry.setCsum(instream); } content = msg.getAttachmentFiles(); return next_entry; } else { AttachmentChunks part = null; byte[] data = null; while (data == null) { if (count >= content.length) { return null; } part = content[count]; try { data = part.attachData.getValue(); } catch (NullPointerException e) { data = null; count++; } } String filename; try { filename = part.attachFileName.getValue(); } catch (NullPointerException e) { filename = String.valueOf(count); } filename = filename.replace("\\", "/"); if (filename.equals("")) { filename = String.valueOf(count); } PathEntry next_entry = new PathEntry(getBasePath().getPath() + "/" + filename, PathEntry.COMPRESSEDFILE); next_entry.setDateLastModified(date); next_entry.setStatus(PathEntry.DIRTY); next_entry.setCompressedSize(data.length); next_entry.setSize(data.length); instream = new ByteArrayInputStreamWithCascadingClose(data); if (isCsumRequested()) { next_entry.setCsumAndClose(instream); } count++; return next_entry; } } catch (ChunkNotFoundException e) { return null; } }
From source file:com.lp.client.util.OutlookToJCR.java
License:Open Source License
private List<JCRDocDto> getAttachments(MAPIMessage msg, JCRDocDto vorlage) { List<JCRDocDto> jcrs = new ArrayList<JCRDocDto>(); AttachmentChunks[] attachments = msg.getAttachmentFiles(); if (attachments != null) { for (AttachmentChunks attachment : attachments) { if (attachment.attachData == null) continue; JCRDocDto jcr = new JCRDocDto(); jcr.setbData(attachment.attachData.getValue()); String filename = attachment.attachLongFileName == null ? attachment.attachFileName.toString() : attachment.attachLongFileName.toString(); jcr.setsFilename(filename);/*from ww w . j a v a 2 s . c o m*/ jcr.setsMIME(Helper.getMime(filename)); jcr.setsName(Helper.getName(filename)); jcr.setDocPath(vorlage.getDocPath().getDeepCopy().add(new DocNodeFile(filename))); jcr.setsSchlagworte(vorlage.getsSchlagworte()); jcrs.add(jcr); } } return jcrs; }
From source file:com.openkm.util.MailUtils.java
License:Open Source License
/** * Add attachments to an imported mail./*from ww w . ja v a2 s . c o m*/ */ public static void addAttachments(String token, com.openkm.bean.Mail mail, MAPIMessage msg, String userId) throws DatabaseException, RepositoryException, PathNotFoundException, ItemExistsException, VirusDetectedException, UserQuotaExceededException, UnsupportedMimeTypeException, ExtensionException, AccessDeniedException, IOException, AutomationException, FileSizeExceededException { for (AttachmentChunks att : msg.getAttachmentFiles()) { if (!att.isEmbeddedMessage()) { String attFileName = att.attachFileName.toString(); if (att.attachLongFileName != null) { attFileName = att.attachLongFileName.toString(); } log.debug("Importing attachment: {}", attFileName); String fileName = FileUtils.getFileName(attFileName); String fileExtension = FileUtils.getFileExtension(attFileName); String testName = fileName + "." + fileExtension; // Test if already exists a document with the same name in the mail for (int j = 1; OKMRepository.getInstance().hasNode(token, mail.getPath() + "/" + testName); j++) { // log.debug("Trying with: {}", testName); testName = fileName + " (" + j + ")." + fileExtension; } Document attachment = new Document(); String mimeType = MimeTypeConfig.mimeTypes.getContentType(testName.toLowerCase()); attachment.setMimeType(mimeType); attachment.setPath(mail.getPath() + "/" + testName); ByteArrayInputStream bais = new ByteArrayInputStream(att.attachData.getValue()); if (Config.REPOSITORY_NATIVE) { new DbDocumentModule().create(token, attachment, bais, att.attachData.getValue().length, userId); } else { // Other implementation } IOUtils.closeQuietly(bais); } } }
From source file:fr.gouv.culture.vitam.eml.MsgExtract2.java
License:Open Source License
private static String extractInfoSubEmail(MAPIMessage msg, File curDir, Element root, VitamArgument argument, ConfigLoader config) {/* w ww. j av a 2 s.c om*/ File curPath = null; Element keywords = XmlDom.factory.createElement(EMAIL_FIELDS.keywords.name); Element metadata = XmlDom.factory.createElement(EMAIL_FIELDS.metadata.name); String id = config.addRankId(root); curPath = new File(curDir, "MSG_" + id); //System.out.println("start of "+id); String[] values = new String[Keywords.values().length]; for (int i = 0; i < Keywords.values().length; i++) { values[i] = null; } String[] test = null; try { test = msg.getHeaders(); } catch (ChunkNotFoundException e4) { // TODO Auto-generated catch block e4.printStackTrace(); } int lastRank = -1; for (String string : test) { if (string.startsWith(Keywords.NextOne.name) && lastRank >= 0) { String recv = string.substring(Keywords.NextOne.name.length()); if (values[lastRank] == null) { values[lastRank] = recv; } else { values[lastRank] += (Keywords.Received.ordinal() == lastRank ? "\n" : " ") + recv; } } else { if (string.startsWith(Keywords.Date.name)) { values[Keywords.Date.ordinal()] = string.substring(Keywords.Date.name.length()); lastRank = -1; } else if (string.startsWith(Keywords.XOriginalArrivalTime.name)) { values[Keywords.XOriginalArrivalTime.ordinal()] = string .substring(Keywords.XOriginalArrivalTime.name.length()); int pos = values[Keywords.XOriginalArrivalTime.ordinal()].indexOf(" FILETIME="); if (pos > 0) { values[Keywords.XOriginalArrivalTime .ordinal()] = values[Keywords.XOriginalArrivalTime.ordinal()].substring(0, pos); } lastRank = -1; } else if (string.startsWith(Keywords.MessageId.name)) { values[Keywords.MessageId.ordinal()] = string.substring(Keywords.MessageId.name.length()); values[Keywords.MessageId.ordinal()] = StringUtils .removeChevron( StringUtils.unescapeHTML(values[Keywords.MessageId.ordinal()], true, false)) .trim(); lastRank = -1; } else if (string.startsWith(Keywords.InReplyTo.name)) { String reply = StringUtils.removeChevron(StringUtils .unescapeHTML(string.substring(Keywords.InReplyTo.name.length()), true, false)); if (values[Keywords.InReplyTo.ordinal()] == null) { values[Keywords.InReplyTo.ordinal()] = reply; } else { values[Keywords.InReplyTo.ordinal()] += " " + reply; } lastRank = Keywords.InReplyTo.ordinal(); } else if (string.startsWith(Keywords.Received.name)) { String recv = string.substring(Keywords.Received.name.length()); if (values[Keywords.Received.ordinal()] == null) { values[Keywords.Received.ordinal()] = recv; } else { values[Keywords.Received.ordinal()] += "\n" + recv; } lastRank = Keywords.Received.ordinal(); } else if (string.startsWith(Keywords.From.name)) { values[Keywords.From.ordinal()] = string.substring(Keywords.From.name.length()); lastRank = -1; } else if (string.startsWith(Keywords.To.name)) { if (values[Keywords.To.ordinal()] == null) { values[Keywords.To.ordinal()] = string.substring(Keywords.To.name.length()); } else { values[Keywords.To.ordinal()] += " " + string.substring(Keywords.To.name.length()); } lastRank = Keywords.To.ordinal(); } else if (string.startsWith(Keywords.Cc.name)) { if (values[Keywords.Cc.ordinal()] == null) { values[Keywords.Cc.ordinal()] = string.substring(Keywords.Cc.name.length()); } else { values[Keywords.Cc.ordinal()] += " " + string.substring(Keywords.Cc.name.length()); } lastRank = Keywords.Cc.ordinal(); } else if (string.startsWith(Keywords.Bcc.name)) { if (values[Keywords.Bcc.ordinal()] == null) { values[Keywords.Bcc.ordinal()] = string.substring(Keywords.Bcc.name.length()); } else { values[Keywords.Bcc.ordinal()] += " " + string.substring(Keywords.Bcc.name.length()); } lastRank = Keywords.Bcc.ordinal(); } else if (string.startsWith(Keywords.ReturnPath.name)) { if (values[Keywords.ReturnPath.ordinal()] == null) { values[Keywords.ReturnPath.ordinal()] = string.substring(Keywords.ReturnPath.name.length()); } else { values[Keywords.ReturnPath.ordinal()] += " " + string.substring(Keywords.ReturnPath.name.length()); } lastRank = Keywords.ReturnPath.ordinal(); } else if (string.startsWith(Keywords.Importance.name)) { values[Keywords.Importance.ordinal()] = string.substring(Keywords.Importance.name.length()); lastRank = -1; } else if (string.startsWith(Keywords.Priority.name)) { values[Keywords.Priority.ordinal()] = string.substring(Keywords.Priority.name.length()); lastRank = -1; } else if (string.startsWith(Keywords.XFolder.name)) { values[Keywords.XFolder.ordinal()] = string.substring(Keywords.XFolder.name.length()); lastRank = -1; } else if (string.startsWith(Keywords.XSDOC.name)) { values[Keywords.XSDOC.ordinal()] = string.substring(Keywords.XSDOC.name.length()); lastRank = -1; } else if (string.startsWith(Keywords.Sensitivity.name)) { values[Keywords.Sensitivity.ordinal()] = string.substring(Keywords.Sensitivity.name.length()); lastRank = -1; } else { lastRank = -1; } } } /*for (int i = 0; i < Keywords.values().length; i++) { System.out.println(Keywords.values()[i].name()+": "+values[i]); }*/ if (values[Keywords.XFolder.ordinal()] != null) { Element sub = XmlDom.factory.createElement(EMAIL_FIELDS.folder.name); sub.addAttribute(EMAIL_FIELDS.folderName.name, values[Keywords.XFolder.ordinal()]); metadata.add(sub); } String fromEmail = values[Keywords.From.ordinal()]; if (fromEmail != null) { Element sub = XmlDom.factory.createElement(EMAIL_FIELDS.from.name); addAddress(sub, EMAIL_FIELDS.fromUnit.name, fromEmail); String fromEmail2 = values[Keywords.ReturnPath.ordinal()]; if (fromEmail2 != null && !fromEmail.contains(fromEmail2)) { addAddress(sub, EMAIL_FIELDS.fromUnit.name, fromEmail2); } metadata.add(sub); } else { String fromEmail2 = values[Keywords.ReturnPath.ordinal()]; if (fromEmail2 != null) { Element sub = XmlDom.factory.createElement(EMAIL_FIELDS.from.name); addAddress(sub, EMAIL_FIELDS.fromUnit.name, fromEmail2); metadata.add(sub); } } fromEmail = values[Keywords.To.ordinal()]; if (fromEmail != null) { Element sub = XmlDom.factory.createElement(EMAIL_FIELDS.toRecipients.name); String[] to = fromEmail.split(","); for (String string2 : to) { addAddress(sub, EMAIL_FIELDS.toUnit.name, string2); } metadata.add(sub); } fromEmail = values[Keywords.Cc.ordinal()]; if (fromEmail != null) { Element sub = XmlDom.factory.createElement(EMAIL_FIELDS.ccRecipients.name); String[] to = fromEmail.split(","); for (String string2 : to) { addAddress(sub, EMAIL_FIELDS.ccUnit.name, string2); } metadata.add(sub); } fromEmail = values[Keywords.Bcc.ordinal()]; if (fromEmail != null) { Element sub = XmlDom.factory.createElement(EMAIL_FIELDS.bccRecipients.name); String[] to = fromEmail.split(","); for (String string2 : to) { addAddress(sub, EMAIL_FIELDS.bccUnit.name, string2); } metadata.add(sub); } String subject = null; try { subject = msg.getSubject(); } catch (ChunkNotFoundException e3) { // TODO Auto-generated catch block e3.printStackTrace(); } if (subject != null) { Element sub = XmlDom.factory.createElement(EMAIL_FIELDS.subject.name); sub.setText(StringUtils.unescapeHTML(subject, true, false)); metadata.add(sub); } subject = null; try { subject = msg.getConversationTopic(); } catch (ChunkNotFoundException e3) { //System.err.println(e3.getMessage()); } if (subject != null) { Element sub = XmlDom.factory.createElement(EMAIL_FIELDS.conversationTopic.name); sub.setText(StringUtils.unescapeHTML(subject, true, false)); metadata.add(sub); } if (values[Keywords.Date.ordinal()] != null) { Element sub = XmlDom.factory.createElement(EMAIL_FIELDS.sentDate.name); sub.setText(values[Keywords.Date.ordinal()]); metadata.add(sub); } if (values[Keywords.XOriginalArrivalTime.ordinal()] != null) { Element sub = XmlDom.factory.createElement(EMAIL_FIELDS.receivedDate.name); sub.setText(values[Keywords.XOriginalArrivalTime.ordinal()]); metadata.add(sub); } if (values[Keywords.Received.ordinal()] != null) { Element sub = XmlDom.factory.createElement(EMAIL_FIELDS.receptionTrace.name); String[] traces = values[Keywords.Received.ordinal()].split("\n"); for (String string : traces) { Element sub3 = XmlDom.factory.createElement(EMAIL_FIELDS.trace.name); sub3.setText(string); sub.add(sub3); } metadata.add(sub); } if (values[Keywords.XSDOC.ordinal()] != null) { Element sub = XmlDom.factory.createElement(EMAIL_FIELDS.emailSize.name); sub.setText(values[Keywords.XSDOC.ordinal()]); metadata.add(sub); } String messageId = values[Keywords.MessageId.ordinal()]; if (messageId != null) { messageId = StringUtils.removeChevron(StringUtils.unescapeHTML(messageId, true, false)).trim(); if (messageId.length() > 1) { Element sub = XmlDom.factory.createElement(EMAIL_FIELDS.messageId.name); sub.setText(messageId); metadata.add(sub); } } String InReplyToId = values[Keywords.InReplyTo.ordinal()]; if (InReplyToId != null) { InReplyToId = StringUtils.removeChevron(StringUtils.unescapeHTML(InReplyToId, true, false)).trim(); if (InReplyToId.length() > 1) { Element sub = XmlDom.factory.createElement(EMAIL_FIELDS.inReplyTo.name); sub.setText(InReplyToId); if (messageId != null && messageId.length() > 1) { String old = EmlExtract.filEmls.get(InReplyToId); if (old == null) { old = messageId; } else { old += "," + messageId; } EmlExtract.filEmls.put(InReplyToId, old); } metadata.add(sub); } InReplyToId = null; } Element prop = XmlDom.factory.createElement(EMAIL_FIELDS.properties.name); String imp = values[Keywords.Importance.ordinal()]; if (imp != null && imp.length() > 0) { try { int Priority = Integer.parseInt(imp); switch (Priority) { case 5: imp = "LOWEST"; break; case 4: imp = "LOW"; break; case 3: imp = "NORMAL"; break; case 2: imp = "HIGH"; break; case 1: imp = "HIGHEST"; break; default: imp = "LEV" + Priority; } } catch (NumberFormatException e) { // ignore since imp will be used as returned } prop.addAttribute(EMAIL_FIELDS.importance.name, imp); } imp = values[Keywords.Priority.ordinal()]; if (imp != null && imp.length() > 0) { try { int Priority = Integer.parseInt(imp); switch (Priority) { case 5: imp = "LOWEST"; break; case 4: imp = "LOW"; break; case 3: imp = "NORMAL"; break; case 2: imp = "HIGH"; break; case 1: imp = "HIGHEST"; break; default: imp = "LEV" + Priority; } } catch (NumberFormatException e) { // ignore since imp will be used as returned } prop.addAttribute(EMAIL_FIELDS.priority.name, imp); } if (values[Keywords.Sensitivity.ordinal()] != null) { prop.addAttribute(EMAIL_FIELDS.sensitivity.name, values[Keywords.Sensitivity.ordinal()]); } AttachmentChunks[] files = msg.getAttachmentFiles(); boolean Attachments = (files != null && files.length > 0); prop.addAttribute(EMAIL_FIELDS.hasAttachment.name, Boolean.toString(Attachments)); metadata.add(prop); String result = ""; Element identification = null; if (Attachments) { File oldPath = curPath; if (config.extractFile) { File newDir = new File(curPath, id); newDir.mkdir(); curPath = newDir; } identification = XmlDom.factory.createElement(EMAIL_FIELDS.attachments.name); // get the number of attachments for this message int NumberOfAttachments = files.length; identification.addAttribute(EMAIL_FIELDS.attNumber.name, Integer.toString(NumberOfAttachments)); // get a specific attachment from this email. for (int attachmentNumber = 0; attachmentNumber < NumberOfAttachments; attachmentNumber++) { AttachmentChunks attachment = files[attachmentNumber]; if (argument.extractKeyword) { result += " " + extractInfoAttachment(attachment, identification, argument, config, curPath); } else { extractInfoAttachment(attachment, identification, argument, config, curPath); } } curPath = oldPath; } // Plain text e-mail body String body = ""; if (argument.extractKeyword || config.extractFile) { try { body = msg.getTextBody(); } catch (ChunkNotFoundException e2) { // TODO Auto-generated catch block e2.printStackTrace(); } boolean isTxt = true; boolean isHttp = false; if (body == null || body.isEmpty()) { isTxt = false; try { body = msg.getHtmlBody(); } catch (ChunkNotFoundException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } isHttp = true; if (body == null || body.isEmpty()) { isHttp = false; try { body = msg.getRtfBody(); } catch (ChunkNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } if (body != null && !body.isEmpty()) { if (config.extractFile) { // XXX FIXME could saved email from HTML Body (clearer) if possible // use curRank in name, and attachment will be under directory named // add currank in field File newDir = new File(curPath, id); newDir.mkdir(); String filenamebody = messageId; if (filenamebody == null || !filenamebody.isEmpty()) { filenamebody = id; } String html = null; if (isHttp) { html = body; } String rtf = null; if (!isTxt && !isHttp) { rtf = body; } if (isTxt) { FileOutputStream output = null; try { output = new FileOutputStream(new File(newDir, filenamebody + ".txt")); byte[] bb = body.getBytes(); output.write(bb, 0, bb.length); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } finally { if (output != null) { try { output.close(); } catch (IOException e) { } } } try { html = msg.getHtmlBody(); } catch (ChunkNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } } if (html != null && !html.isEmpty()) { FileOutputStream output = null; try { output = new FileOutputStream(new File(newDir, filenamebody + ".html")); byte[] bb = html.getBytes(); output.write(bb, 0, bb.length); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } finally { if (output != null) { try { output.close(); } catch (IOException e) { } } } html = null; } if (isTxt || isHttp) { try { rtf = msg.getRtfBody(); } catch (ChunkNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } } if (rtf != null && !rtf.isEmpty()) { FileOutputStream output = null; try { output = new FileOutputStream(new File(newDir, filenamebody + ".rtf")); byte[] bb = rtf.getBytes(); output.write(bb, 0, bb.length); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } finally { if (output != null) { try { output.close(); } catch (IOException e) { } } } rtf = null; } } } } if (metadata.hasContent()) { root.add(metadata); } if (identification != null && identification.hasContent()) { root.add(identification); } if (argument.extractKeyword) { result = body + " " + result; body = null; ExtractInfo.exportMetadata(keywords, result, "", config, null); if (keywords.hasContent()) { root.add(keywords); } } root.addAttribute(EMAIL_FIELDS.status.name, "ok"); //System.out.println("end of "+id); return result; }
From source file:org.alfresco.repo.content.transform.MSGParser.java
License:Apache License
/** * Prepare extract multipart by filling attachment list. * * @param xhtml/*from w w w. j av a2 s . c o m*/ * the xhtml * @param msg * the message * @param attachmentList * is list with attachments to fill * @throws MessagingException * the messaging exception * @throws IOException * Signals that an I/O exception has occurred. * @throws SAXException * the sAX exception * @throws TikaException * the tika exception */ private void prepareExtractMultipart(XHTMLContentHandler xhtml, MAPIMessage msg, List<String> attachmentList) throws MessagingException, IOException, SAXException, TikaException { // Process the attachments for (AttachmentChunks attachment : msg.getAttachmentFiles()) { String filename = null; if (attachment.attachLongFileName != null) { filename = attachment.attachLongFileName.getValue(); } else if (attachment.attachFileName != null) { filename = attachment.attachFileName.getValue(); } if (filename != null && filename.length() > 0) { Chunk[] chunks = attachment.getChunks(); String id = null; byte[] data = null; // String mimetype = null; for (Chunk chunk : chunks) { if (MAPIProperty.ATTACH_CONTENT_ID.id == chunk.getChunkId()) { id = chunk.toString(); // } else if (MAPIProperty.ATTACH_MIME_TAG.id == chunk // .getChunkId()) { // mimetype = chunk.toString(); } else if (MAPIProperty.ATTACH_DATA.id == chunk.getChunkId() && (chunk instanceof ByteChunk)) { ByteChunk chunkByte = (ByteChunk) chunk; data = chunkByte.getValue(); } } if (id != null && data != null) { File file = new File(workingDirectory, System.currentTimeMillis() + ""); FileOutputStream fileOutputStream = new FileOutputStream(file); IOUtils.copy(new ByteArrayInputStream(data), fileOutputStream); IOUtils.closeQuietly(fileOutputStream); String src = file.getName(); String replace = id.replace("<", "").replace(">", ""); // String encodedData = new // String(Base64.encodeBase64(data)); // String src = "data:" + mimetype + ";base64," + // encodedData; referencesCache.put(replace, src); } else { attachmentList.add(filename); } } } }
From source file:org.silverpeas.core.mail.MsgMailExtractorIntegrationTest.java
License:Open Source License
/** * This unit test is support for MSG exploration solution testing. * * @throws Exception//from w ww .java2 s . c o m */ @Test public void readMailWithAttachmentsMSG() throws Exception { MAPIMessage msg = new MAPIMessage(getDocumentFromName(FILENAME_MAIL_WITH_ATTACHMENTS).getPath()); msg.setReturnNullOnMissingChunk(true); assertThat(msg.getDisplayFrom(), is("Nicolas Eysseric")); assertThat(msg.getRecipientDetailsChunks(), is(notNullValue())); assertThat(msg.getRecipientDetailsChunks().length, is(2)); assertThat(msg.getRecipientDetailsChunks()[0].getRecipientName(), is("Aurore ADR. DELISSNYDER")); assertThat(msg.getRecipientDetailsChunks()[0].getRecipientEmailAddress(), is("Aurore.DELISSNYDER@hydrostadium.fr")); assertThat(msg.getRecipientDetailsChunks()[1].getRecipientName(), is("Ludovic BERTIN")); assertThat(msg.getRecipientDetailsChunks()[1].getRecipientEmailAddress(), is("ludovic.bertin@oosphere.com")); AttachmentChunks[] attachments = msg.getAttachmentFiles(); assertThat(attachments, is(notNullValue())); assertThat(attachments.length, is(2)); if (attachments != null && attachments.length > 0) { System.out.print("\n"); for (AttachmentChunks attachmentChunks : attachments) { System.out.println(attachmentChunks.attachFileName.getValue()); } } else { System.out.println("None."); } System.out.println("DATE : " + DateUtil.getOutputDateAndHour(getMessageDate(msg), "fr")); System.out.println("BODY : "); System.out.println(">>>"); System.out.println(getMessageBody(msg)); System.out.println("<<<"); }
From source file:org.silverpeas.core.mail.MsgMailExtractorIT.java
License:Open Source License
/** * This unit test is support for MSG exploration solution testing. * * @throws Exception/*from w w w.jav a 2 s . c o m*/ */ @Test public void readMailWithAttachmentsMSG() throws Exception { MAPIMessage msg = new MAPIMessage(getDocumentFromName(FILENAME_MAIL_WITH_ATTACHMENTS).getPath()); msg.setReturnNullOnMissingChunk(true); assertThat(msg.getDisplayFrom(), is("Nicolas Eysseric")); assertThat(msg.getRecipientDetailsChunks(), is(notNullValue())); assertThat(msg.getRecipientDetailsChunks().length, is(2)); assertThat(msg.getRecipientDetailsChunks()[0].getRecipientName(), is("Aurore ADR. DELISSNYDER")); assertThat(msg.getRecipientDetailsChunks()[0].getRecipientEmailAddress(), is("Aurore.DELISSNYDER@hydrostadium.fr")); assertThat(msg.getRecipientDetailsChunks()[1].getRecipientName(), is("Ludovic BERTIN")); assertThat(msg.getRecipientDetailsChunks()[1].getRecipientEmailAddress(), is("ludovic.bertin@oosphere.com")); AttachmentChunks[] attachments = msg.getAttachmentFiles(); assertThat(attachments, is(notNullValue())); assertThat(attachments.length, is(2)); if (attachments != null && attachments.length > 0) { System.out.print("\n"); for (AttachmentChunks attachmentChunks : attachments) { System.out.println(attachmentChunks.getAttachFileName().getValue()); } } else { System.out.println("None."); } System.out.println("DATE : " + DateUtil.getOutputDateAndHour(getMessageDate(msg), "fr")); System.out.println("BODY : "); System.out.println(">>>"); System.out.println(getMessageBody(msg)); System.out.println("<<<"); }