/**
* Private utility to get body part of a message. User preferences
* regarding html messages is used to select what to retrieve. If the body
* part retrieved is null, a fake one containing a simple text is returned
*
* @param uid
* ID of message
* @param srcFolder
* AbstractMessageFolder containing the message
* @param worker
* @return body part of message
*/
private void setupMessageBodyPart(Object uid, IMailbox srcFolder, IWorkerStatusController worker) throws Exception {
// Does the user prefer html or plain text?
XmlElement html = MailConfig.getInstance().getMainFrameOptionsConfig().getRoot().getElement("/options/html");
// Get body of message depending on user preferences
MimeTree mimePartTree = srcFolder.getMimePartTree(uid);
MimePart bodyPart = null;
if (Boolean.valueOf(html.getAttribute("prefer")).booleanValue()) {
bodyPart = mimePartTree.getFirstTextPart("html");
}
else {
bodyPart = mimePartTree.getFirstTextPart("plain");
}
if (bodyPart == null) {
bodyHeader = new MimeHeader();
bodyStream = new ByteArrayInputStream(new byte[0]);
}
else {
bodyHeader = bodyPart.getHeader();
bodyStream = srcFolder.getMimePartBodyStream(uid, bodyPart.getAddress());
}
}
|