使用JavaIMAP时两次获取Gmail消息的html内容
正如标题所示,我正在尝试从gmail帐户导入电子邮件,它工作得相当好,但我的代码中似乎有一个问题,消息的内容在我的输出中出现了两次 这是我的密码:使用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
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();