[英]Could not read html body of an email with javax.mail on MSExchange
我有以下代碼閱讀收件箱:
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格式轉發這些消息。 當我從Google讀取同一封電子郵件時,格式是不同的,並且是多部分/替代形式,我在第一個多部分中進行搜索,同時找到純文本和html。 在MS Exchange上,我只能得到純文本。
有人知道這是什么嗎? 謝謝
Exchange習慣於將消息重新格式化為它認為應該的形式,而忽略實際發送的內容。 如果您可以控制郵件服務器,則可以更改一些設置來幫助完成此任務。 否則,您將無法使用Exchange提供的功能。 如果沒有為您提供內容的html版本,則您無能為力。 但是,您可能想使用msgshow.java演示程序轉儲消息的全部內容,以確保html內容確實不在某處,並且您只是無法正確訪問它。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.