如何根据收到的邮件内容区分邮件的内容 是文本格式 还是html格式 
以及转换的处理
把文本模式转换html格式  同一用html来显示 
需要处理哪些特殊符号的处理

解决方案 »

  1.   

    /**
                 * 解析邮件,把得到的邮件内容保存到一个StringBuffer对象中,解析邮件
                 * 主要是根据MimeType类型的不同执行不同的操作,一步一步的解析
                 */
                private static void praseMailContent(StringBuffer bodytext,
                                                     Part part) throws
                Exception {
            if (bodytext == null) {
                bodytext = new StringBuffer();
            }
            String contenttype = part.getContentType();
            int nameindex = contenttype.indexOf("name");
            boolean conname = false;
            if (nameindex != -1) {
                conname = true;
            }        System.out.println("CONTENTTYPE: " + contenttype);
            if (part.isMimeType("text/plain") && !conname) {
                bodytext.append((String) part.getContent());
            } else if (part.isMimeType("text/html") && !conname) {
                bodytext.append((String) part.getContent());
            } else if (part.isMimeType("multipart/*")) {
                Multipart multipart = (Multipart) part.getContent();
                int counts = multipart.getCount();
                for (int i = 0; i < counts; i++) {
                    praseMailContent(bodytext, multipart.getBodyPart(i));
                }
            } else if (part.isMimeType("message/rfc822")) {
                praseMailContent(bodytext, (Part) part.getContent());
            } else {}
        }
      

  2.   

    如果是text/html 
      对该内容中没有<html><body></body></html>怎么处理
    上面的大哥有没有转换的规则
      

  3.   

    private static void praseMailContent(StringBuffer bodytext,
                                                     Part part) throws
                Exception {
            if (bodytext == null) {
                bodytext = new StringBuffer();
            }
            String contenttype = part.getContentType();
            int nameindex = contenttype.indexOf("name");
            boolean conname = false;
            if (nameindex != -1) {
                conname = true;
            }        System.out.println("CONTENTTYPE: " + contenttype);
            if (part.isMimeType("text/plain") && !conname) {
                bodytext.append((String) part.getContent());
            } else if (part.isMimeType("text/html") && !conname) {
                bodytext.append((String) part.getContent());
            } else if (part.isMimeType("multipart/*")) {
                Multipart multipart = (Multipart) part.getContent();
                int counts = multipart.getCount();
                for (int i = 0; i < counts; i++) {
                    praseMailContent(bodytext, multipart.getBodyPart(i));
                }
            } else if (part.isMimeType("message/rfc822")) {
                praseMailContent(bodytext, (Part) part.getContent());
            } else {}
        }
    //这样就可以了,告诉我QQ我们以后,好好交流!