branch develop-1.1.x updated (e7ac102 -> e637153)
This is an automated email from the git hooks/post-receive script. New change to branch develop-1.1.x in repository faxtomail. See http://git.codelutin.com/faxtomail.git from e7ac102 [jgitflow-maven-plugin]Updating develop poms back to pre merge state new e637153 encodage des urls des images dans les emails (fixes #7741, fixes #7740) The 1 revisions listed above as "new" are entirely new to this repository and will be described in separate emails. The revisions listed as "adds" were already present in the repository and have only been added to this reference. Detailed log of new commits: commit e637153a5d1087cb0afa8463af071f75e99954d0 Author: Kevin Morin <morin@codelutin.com> Date: Thu Nov 19 17:31:15 2015 +0100 encodage des urls des images dans les emails (fixes #7741, fixes #7740) Summary of changes: faxtomail-service/pom.xml | 5 ++++ .../faxtomail/services/FaxToMailServiceUtils.java | 32 ++++++++++++++++++++++ .../services/service/EmailServiceImpl.java | 4 +++ .../faxtomail/ui/swing/util/FaxToMailUIUtil.java | 17 ++++++++++-- pom.xml | 7 +++++ 5 files changed, 63 insertions(+), 2 deletions(-) -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch develop-1.1.x in repository faxtomail. See http://git.codelutin.com/faxtomail.git commit e637153a5d1087cb0afa8463af071f75e99954d0 Author: Kevin Morin <morin@codelutin.com> Date: Thu Nov 19 17:31:15 2015 +0100 encodage des urls des images dans les emails (fixes #7741, fixes #7740) --- faxtomail-service/pom.xml | 5 ++++ .../faxtomail/services/FaxToMailServiceUtils.java | 32 ++++++++++++++++++++++ .../services/service/EmailServiceImpl.java | 4 +++ .../faxtomail/ui/swing/util/FaxToMailUIUtil.java | 17 ++++++++++-- pom.xml | 7 +++++ 5 files changed, 63 insertions(+), 2 deletions(-) diff --git a/faxtomail-service/pom.xml b/faxtomail-service/pom.xml index 7c069cb..7d1f8e9 100644 --- a/faxtomail-service/pom.xml +++ b/faxtomail-service/pom.xml @@ -134,6 +134,11 @@ </dependency> <dependency> + <groupId>commons-httpclient</groupId> + <artifactId>commons-httpclient</artifactId> + </dependency> + + <dependency> <groupId>javax.mail</groupId> <artifactId>mail</artifactId> </dependency> diff --git a/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/FaxToMailServiceUtils.java b/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/FaxToMailServiceUtils.java index 2f63743..b02bc12 100644 --- a/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/FaxToMailServiceUtils.java +++ b/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/FaxToMailServiceUtils.java @@ -25,6 +25,8 @@ package com.franciaflex.faxtomail.services; */ import com.franciaflex.faxtomail.persistence.entities.MailFolder; +import org.apache.commons.httpclient.URIException; +import org.apache.commons.httpclient.util.URIUtil; import org.apache.commons.io.Charsets; import javax.mail.MessagingException; @@ -32,13 +34,19 @@ import javax.mail.Part; import javax.mail.internet.ContentType; import java.nio.charset.Charset; import java.nio.charset.UnsupportedCharsetException; +import java.util.ArrayList; import java.util.Collection; +import java.util.List; +import java.util.regex.Matcher; +import java.util.regex.Pattern; /** * @author Kevin Morin (Code Lutin) */ public class FaxToMailServiceUtils { + public static final Pattern IMG_SRC_PATTERN = Pattern.compile("src=([\"'])(.*?)([\"'])"); + public static String addFaxDomainToFaxNumber(String faxNumber, MailFolder folder) { while (!folder.isUseCurrentLevelFaxDomain() && folder.getParent() != null) { @@ -96,4 +104,28 @@ public class FaxToMailServiceUtils { } return sb.toString(); } + + /** + * Sometimes, the urls of the images in an email contains spaces. + * But URI.parse(uri) does not accept spaces as a valid character. + * This method encode the url for them to be compatible with URI.parse + * + * @param emailContent the content of the email + * @return the email content with the url of the images encoded to be parsed by URI + * @throws URIException + */ + public static String encodeImageSourcesInEmail(String emailContent) throws URIException { + List<String> imgSrcUrls = new ArrayList<>(); + + Matcher imgSrcMatcher = IMG_SRC_PATTERN.matcher(emailContent); + while (imgSrcMatcher.find()) { + imgSrcUrls.add(imgSrcMatcher.group(2)); + } + + for (String imgSrcUrl : imgSrcUrls) { + emailContent = emailContent.replace(imgSrcUrl, URIUtil.encodeQuery(imgSrcUrl)); + } + + return emailContent; + } } diff --git a/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/EmailServiceImpl.java b/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/EmailServiceImpl.java index feee1fa..56d21c7 100644 --- a/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/EmailServiceImpl.java +++ b/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/EmailServiceImpl.java @@ -2121,6 +2121,10 @@ public class EmailServiceImpl extends FaxToMailServiceSupport implements EmailSe // cf #6996 content = content.replaceAll("(\\w+)=([\"'])cid:.*?([\"'])", ""); + // on reformate les urls pour supprimer les caractères qui vont pas (ex espaces) + // cf #7740 + content = FaxToMailServiceUtils.encodeImageSourcesInEmail(content); + contents.add(content); } diff --git a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/util/FaxToMailUIUtil.java b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/util/FaxToMailUIUtil.java index 7db170f..601af8a 100644 --- a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/util/FaxToMailUIUtil.java +++ b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/util/FaxToMailUIUtil.java @@ -72,7 +72,12 @@ import org.nuiton.util.StringUtil; import javax.media.jai.PlanarImage; import javax.print.attribute.HashPrintRequestAttributeSet; import javax.print.attribute.PrintRequestAttributeSet; -import javax.swing.*; +import javax.swing.Box; +import javax.swing.Icon; +import javax.swing.JEditorPane; +import javax.swing.JPanel; +import javax.swing.JTextPane; +import javax.swing.JTree; import javax.swing.event.HyperlinkEvent; import javax.swing.event.HyperlinkListener; import javax.swing.text.html.HTMLEditorKit; @@ -81,7 +86,11 @@ import javax.swing.tree.DefaultTreeCellRenderer; import javax.swing.tree.DefaultTreeModel; import javax.swing.tree.TreeModel; import javax.swing.tree.TreePath; -import java.awt.*; +import java.awt.Color; +import java.awt.Component; +import java.awt.Desktop; +import java.awt.Font; +import java.awt.Graphics; import java.awt.image.BufferedImage; import java.awt.image.RenderedImage; import java.awt.print.PageFormat; @@ -835,6 +844,10 @@ public final class FaxToMailUIUtil extends ApplicationUIUtil { } try { + // on reformate les urls pour supprimer les caractères qui vont pas (ex espaces) + // cf #7741 + content = FaxToMailServiceUtils.encodeImageSourcesInEmail(content); + textPane.setText(content); textPanePanel.add(textPane); diff --git a/pom.xml b/pom.xml index 7b9216b..6cfd071 100644 --- a/pom.xml +++ b/pom.xml @@ -126,6 +126,7 @@ <commonsEmailVersion>1.3.3</commonsEmailVersion> <commonsCollections4Version>4.0</commonsCollections4Version> <commonsLang3Version>3.3.2</commonsLang3Version> + <commonsHttpClientVersion>3.1</commonsHttpClientVersion> <commonsLoggingVersion>1.2</commonsLoggingVersion> <junitVersion>4.11</junitVersion> @@ -453,6 +454,12 @@ <version>${commonsLang3Version}</version> </dependency> + <dependency> + <groupId>commons-httpclient</groupId> + <artifactId>commons-httpclient</artifactId> + <version>${commonsHttpClientVersion}</version> + </dependency> + <!-- web module --> <dependency> <groupId>javax.servlet</groupId> -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.
participants (1)
-
codelutin.com scm