public static void extractHeadersFromMail()

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));
        }
    }