From e195a5f5c89760248424bbcfe2011b6296f15616 Mon Sep 17 00:00:00 2001 From: mguessan Date: Thu, 8 Feb 2007 08:00:17 +0000 Subject: [PATCH] remove external images from body image list before inline images iteration git-svn-id: http://svn.code.sf.net/p/davmail/code/trunk@26 3d1905a2-6b24-0410-a738-b14d5a86fcbd --- src/java/davmail/DavGatewayTray.java | 2 +- src/java/davmail/exchange/ExchangeSession.java | 14 +++++++++++--- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/src/java/davmail/DavGatewayTray.java b/src/java/davmail/DavGatewayTray.java index bbe72352..8c45b98e 100644 --- a/src/java/davmail/DavGatewayTray.java +++ b/src/java/davmail/DavGatewayTray.java @@ -137,7 +137,7 @@ public class DavGatewayTray { defaultItem.addActionListener(settingsListener); popup.add(defaultItem); - MenuItem logItem = new MenuItem("Logs..."); + MenuItem logItem = new MenuItem("Show logs..."); logItem.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { Logger rootLogger = Logger.getRootLogger(); diff --git a/src/java/davmail/exchange/ExchangeSession.java b/src/java/davmail/exchange/ExchangeSession.java index 5ee26361..14668085 100644 --- a/src/java/davmail/exchange/ExchangeSession.java +++ b/src/java/davmail/exchange/ExchangeSession.java @@ -1139,7 +1139,15 @@ public class ExchangeSession { .replaceAll("<\\?xml:namespace", "") .getBytes("UTF-8")); XmlDocument xmlBody = tidyDocument(bais); - List htmlBodyImgList = xmlBody.getNodes("//img/@src"); + List htmlBodyAllImgList = xmlBody.getNodes("//img/@src"); + // remove absolute images from body img list + List htmlBodyImgList = new ArrayList(); + for (Attribute imgAttribute:htmlBodyAllImgList) { + String value = imgAttribute.getValue(); + if (!value.startsWith("http://") && !value.startsWith("https://")) { + htmlBodyImgList.add(value); + } + } // use owa generated body to look for inline images List imgList = xmlDocument.getNodes("//img/@src"); @@ -1174,10 +1182,10 @@ public class ExchangeSession { attachment.name = attachmentName; attachment.href = messageUrl + "/" + attachmentHref; if (htmlBodyImgList.size() > inlineImageCount) { - String contentid = htmlBodyImgList.get(inlineImageCount++).getValue(); + String contentid = htmlBodyImgList.get(inlineImageCount++); if (contentid.startsWith("cid:")) { attachment.contentid = contentid.substring("cid:".length()); - } else if (!contentid.startsWith("http://") && !contentid.startsWith("https://")) { + } else { attachment.contentid = contentid; // must patch htmlBody for inline image without cid htmlBody = htmlBody.replaceFirst(attachment.contentid, "cid:" + attachment.contentid);