in bindings/servicemix-mail/src/main/java/org/apache/servicemix/mail/utils/MailUtils.java [268:346]
public static void extractHeadersFromMail(NormalizedMessage nmsg, MimeMessage mailMsg)
throws javax.mail.MessagingException {
// first convert the headers of the mail to properties of the message
Enumeration headers = mailMsg.getAllHeaders();
while (headers.hasMoreElements()) {
Header header = (Header)headers.nextElement();
if (nmsg.getProperty(header.getName()) != null) {
// this is a multi line header - add it at the end
try {
nmsg.setProperty(header.getName(), nmsg.getProperty(header.getName() + ";"
+ MimeUtility.decodeText(header.getValue())));
} catch (UnsupportedEncodingException e) {
nmsg.setProperty(header.getName(), nmsg.getProperty(header.getName() + ";"
+ header.getValue()));
}
} else {
// add it to the message properties
try {
nmsg.setProperty(header.getName(), MimeUtility.decodeText(header.getValue()));
} catch (UnsupportedEncodingException e) {
nmsg.setProperty(header.getName(), header.getValue());
}
}
try {
logger.debug("Setting property: {} = {}", header.getName(), MimeUtility.decodeText(header.getValue()));
} catch (UnsupportedEncodingException e) {
logger.debug("Setting property: {} = {}", header.getName(), header.getValue());
}
}
// grab the mime type
if (mailMsg.getContentType() != null) {
if (mailMsg.isMimeType(MailContentType.TEXT_PLAIN.getMimeType())) {
nmsg.setProperty(AbstractMailMarshaler.MSG_TAG_MAIL_CONTENT_TYPE, MailContentType.TEXT_PLAIN.getMimeType());
} else if (mailMsg.isMimeType(MailContentType.TEXT_HTML.getMimeType())) {
nmsg.setProperty(AbstractMailMarshaler.MSG_TAG_MAIL_CONTENT_TYPE, MailContentType.TEXT_HTML.getMimeType());
} else if (mailMsg.isMimeType(MailContentType.TEXT_XML.getMimeType())) {
nmsg.setProperty(AbstractMailMarshaler.MSG_TAG_MAIL_CONTENT_TYPE, MailContentType.TEXT_XML.getMimeType());
} else if (mailMsg.isMimeType(MailContentType.MULTIPART_ALTERNATIVE.getMimeType())) {
nmsg.setProperty(AbstractMailMarshaler.MSG_TAG_MAIL_CONTENT_TYPE, MailContentType.MULTIPART_ALTERNATIVE.getMimeType());
} else if (mailMsg.isMimeType(MailContentType.MULTIPART_MIXED.getMimeType())) {
nmsg.setProperty(AbstractMailMarshaler.MSG_TAG_MAIL_CONTENT_TYPE, MailContentType.MULTIPART_MIXED.getMimeType());
} else if (mailMsg.isMimeType(MailContentType.MULTIPART.getMimeType())) {
nmsg.setProperty(AbstractMailMarshaler.MSG_TAG_MAIL_CONTENT_TYPE, MailContentType.MULTIPART.getMimeType());
} else {
nmsg.setProperty(AbstractMailMarshaler.MSG_TAG_MAIL_CONTENT_TYPE, MailContentType.UNKNOWN.getMimeType());
}
}
// now fill some predefined properties to the message
if (nmsg.getProperty(AbstractMailMarshaler.MAIL_TAG_BCC) != null) {
nmsg.setProperty(AbstractMailMarshaler.MSG_TAG_BCC, nmsg
.getProperty(AbstractMailMarshaler.MAIL_TAG_BCC));
}
if (nmsg.getProperty(AbstractMailMarshaler.MAIL_TAG_CC) != null) {
nmsg.setProperty(AbstractMailMarshaler.MSG_TAG_CC, nmsg
.getProperty(AbstractMailMarshaler.MAIL_TAG_CC));
}
if (nmsg.getProperty(AbstractMailMarshaler.MAIL_TAG_FROM) != null) {
nmsg.setProperty(AbstractMailMarshaler.MSG_TAG_FROM, nmsg
.getProperty(AbstractMailMarshaler.MAIL_TAG_FROM));
}
if (nmsg.getProperty(AbstractMailMarshaler.MAIL_TAG_REPLYTO) != null) {
nmsg.setProperty(AbstractMailMarshaler.MSG_TAG_REPLYTO, nmsg
.getProperty(AbstractMailMarshaler.MAIL_TAG_REPLYTO));
}
if (nmsg.getProperty(AbstractMailMarshaler.MAIL_TAG_SENTDATE) != null) {
nmsg.setProperty(AbstractMailMarshaler.MSG_TAG_SENTDATE, nmsg
.getProperty(AbstractMailMarshaler.MAIL_TAG_SENTDATE));
}
if (nmsg.getProperty(AbstractMailMarshaler.MAIL_TAG_SUBJECT) != null) {
nmsg.setProperty(AbstractMailMarshaler.MSG_TAG_SUBJECT, nmsg
.getProperty(AbstractMailMarshaler.MAIL_TAG_SUBJECT));
}
if (nmsg.getProperty(AbstractMailMarshaler.MAIL_TAG_TO) != null) {
nmsg.setProperty(AbstractMailMarshaler.MSG_TAG_TO, nmsg
.getProperty(AbstractMailMarshaler.MAIL_TAG_TO));
}
}