簡體   English   中英

無法在MSExchange上使用javax.mail讀取電子郵件的html正文

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM