使用JavaIMAP时两次获取Gmail消息的html内容

使用JavaIMAP时两次获取Gmail消息的html内容,java,gmail,imap,Java,Gmail,Imap,正如标题所示,我正在尝试从gmail帐户导入电子邮件,它工作得相当好,但我的代码中似乎有一个问题,消息的内容在我的输出中出现了两次 这是我的密码: private String processMessage(Message m) throws IOException, MessagingException { String message = ""; StringBuilder sb = new StringBuilder(); Object o

正如标题所示,我正在尝试从gmail帐户导入电子邮件,它工作得相当好,但我的代码中似乎有一个问题,消息的内容在我的输出中出现了两次

这是我的密码:

private String processMessage(Message m) throws IOException, MessagingException {
        String message = "";
        StringBuilder sb = new StringBuilder();

        Object o = m.getContent();

        if (o instanceof Multipart) {
            Multipart mm = (Multipart) m.getContent();
            for (int i = 0; i < mm.getCount(); i++) {

                BodyPart bp = mm.getBodyPart(i);
                Object bpo = bp.getContent();

                if (bpo instanceof String) {
                    sb.append(bpo);
                } 
            }
        } else if (o instanceof String) {
            sb.append(o);
        }
        String htmlMessage = sb.toString();
        message = htmlMessage.replaceAll("\\<.*?\\>", "");

        return message;
    }

大多数电子邮件都有html正文部分和纯文本正文部分(两者都有)。

您可以使用
getContentType
获取身体部位的内容类型

,谢谢您的提示。通过在追加之前简单地添加if(bp.getContentType().contains(“TEXT/PLAIN”)),我现在只得到了我需要的东西。
folder.open(IMAPFolder.READ_ONLY);
messages = folder.getMessages();