我有以下代码阅读收件箱:
Properties props = System.getProperties();
props.setProperty("mail.store.protocol", inboxSettings.Protocol);
Session session = Session.getDefaultInstance(props, null);
store = session.getStore(inboxSettings.Protocol);
store.connect(inboxSettings.Host,inboxSettings.Username, readPassword(inboxSettings.PasswordPath));
inbox = store.getFolder("Inbox");
inbox.open(Folder.READ_WRITE);
Message messages[] = inbox.search(new FlagTerm(new Flags(Flag.SEEN), false));
FetchProfile fp = new FetchProfile();
fp.add(FetchProfile.Item.ENVELOPE);
fp.add(FetchProfile.Item.CONTENT_INFO);
inbox.fetch(messages, fp);
for (int i = 0; i < messages.length; i++)
{
MimeMultipart mimeMultipart = (MimeMultipart) messages[i].getContent();
BodyPart bodyPart = mimeMultipart.getBodyPart(i);
}
我遇到的问题是所有 html 电子邮件都被读取为纯文本。我无法获取消息的 html 标记。我需要以相同的 html 格式转发这些消息。当我从谷歌阅读同一封电子邮件时,格式不同,它是多部分/替代的,我在第一个多部分中搜索并找到纯文本和 html。在 MS Exchange 上,我只得到纯文本。
有谁知道这是怎么回事?谢谢