This is an automated email from the ASF dual-hosted git repository.
pawan pushed a commit to branch release17.12 in repository https://gitbox.apache.org/repos/asf/ofbiz-framework.git The following commit(s) were added to refs/heads/release17.12 by this push: new 9706acf Fixed: Potensial bug under CommunicationEventServices#updateCommEventAfterEmail for CommunicationEvent.subject field (OFBIZ-10879) 9706acf is described below commit 9706acf064e26c291c0bd10081df8286ae6b359b Author: Pawan Verma <[hidden email]> AuthorDate: Sat Jan 25 15:54:37 2020 +0530 Fixed: Potensial bug under CommunicationEventServices#updateCommEventAfterEmail for CommunicationEvent.subject field (OFBIZ-10879) CommunicationEventServices#updateCommEventAfterEmail could generate wrong result. If general.properties value 'mail.notifications.redirectTo' is used, it is possible that the subject string has more than 255 character. Thanks, Ulrich Heidfeld for your contribution. --- .../communication/CommunicationEventServices.java | 23 ++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/applications/party/src/main/java/org/apache/ofbiz/party/communication/CommunicationEventServices.java b/applications/party/src/main/java/org/apache/ofbiz/party/communication/CommunicationEventServices.java index 759008f..507d97c 100644 --- a/applications/party/src/main/java/org/apache/ofbiz/party/communication/CommunicationEventServices.java +++ b/applications/party/src/main/java/org/apache/ofbiz/party/communication/CommunicationEventServices.java @@ -43,6 +43,7 @@ import javax.mail.internet.InternetAddress; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import org.apache.commons.lang.StringUtils; import org.apache.ofbiz.base.location.FlexibleLocation; import org.apache.ofbiz.base.util.Debug; import org.apache.ofbiz.base.util.GeneralException; @@ -607,6 +608,7 @@ public class CommunicationEventServices { */ public static Map<String, Object> updateCommEventAfterEmail(DispatchContext dctx, Map<String, ? extends Object> context) { LocalDispatcher dispatcher = dctx.getDispatcher(); + Delegator delegator = dctx.getDelegator(); GenericValue userLogin = (GenericValue) context.get("userLogin"); String communicationEventId = (String) context.get("communicationEventId"); @@ -622,6 +624,27 @@ public class CommunicationEventServices { commEventMap.put("userLogin", userLogin); commEventMap.put("content", wrapper.getMessageBody()); + String subject = wrapper.getSubject(); + String redirectAddress = EntityUtilProperties.getPropertyValue("general", + "mail.notifications.redirectTo", delegator); + if (UtilValidate.isNotEmpty(redirectAddress) && subject.endsWith("]") && subject.contains(" [To: ")) { + // Format of subject for redirected mail from sendMail service: + // "Original subject [To: <sendTo>, Cc: <sendCc>, Bcc: <sendBcc>]" + String origSendTo = StringUtils.substringBetween(subject, "[To: ", ", Cc:"); + String origSendCc = StringUtils.substringBetween(subject, ", Cc: ", ", Bcc:"); + String origSendBcc = StringUtils.substringBetween(subject, ", Bcc: ", "]"); + + // ignore "null" Strings in subject + if (origSendTo != "null") commEventMap.put("toString", origSendTo); + if (origSendCc != "null") commEventMap.put("ccString", origSendCc); + if (origSendBcc != "null") commEventMap.put("bccString", origSendBcc); + + // Format of subject in commEvent: "Original subject [RedirectedTo: [hidden email]]" + subject = StringUtils.substringBefore(subject, "[To: ") + + "[RedirectedTo: " + commEventMap.get("fromString") + "]"; + commEventMap.put("subject", StringUtils.abbreviate(subject, 255)); + } + // populate the address (to/from/cc/bcc) data populateAddressesFromMessage(wrapper, commEventMap); |
Free forum by Nabble | Edit this page |