Author: hansbak
Date: Fri Sep 29 02:26:50 2006 New Revision: 451194 URL: http://svn.apache.org/viewvc?view=rev&rev=451194 Log: Some more fixes to the incomig email services Modified: incubator/ofbiz/trunk/applications/content/servicedef/services_email.xml incubator/ofbiz/trunk/applications/content/src/org/ofbiz/content/email/EmailServices.java incubator/ofbiz/trunk/applications/content/src/org/ofbiz/content/email/EmailWorker.java Modified: incubator/ofbiz/trunk/applications/content/servicedef/services_email.xml URL: http://svn.apache.org/viewvc/incubator/ofbiz/trunk/applications/content/servicedef/services_email.xml?view=diff&rev=451194&r1=451193&r2=451194 ============================================================================== --- incubator/ofbiz/trunk/applications/content/servicedef/services_email.xml (original) +++ incubator/ofbiz/trunk/applications/content/servicedef/services_email.xml Fri Sep 29 02:26:50 2006 @@ -103,10 +103,10 @@ <service name="storeEmailAsCommunication" engine="java" location="org.ofbiz.content.email.EmailServices" invoke="storeEmailAsCommunication" auth="true"> <description>Store email as a communication event with the status COM_COMPLETE and current timestamp as datetimeStarted and datetimeEnded. - The communication event will be from the party of the userLogin to the party of the partyId parameter. It is meant to run a SECA after - a sendMail to record outgoing emails.</description> + The communication event will be from the party of the userLogin to the party of the partyId parameter. + It is meant to run a SECA after a sendMail to record outgoing emails.</description> <attribute name="partyId" type="String" mode="IN" optional="true"/> - <attribute name="communicationEventId" type="String" mode="IN" optional="true"/> + <attribute name="communicationEventId" type="String" mode="IN" optional="false"/> <attribute name="subject" type="String" mode="IN" optional="false"/> <attribute name="body" type="String" mode="IN" optional="false"/> <attribute name="contentType" type="String" mode="IN" optional="true"/> @@ -117,9 +117,10 @@ Process incoming email. Try to determine partyIdFrom from the first SendFrom email address. datetimeStarted and datetimeEnded are the sent and received dates respectively, partyIdTo is from the first SendTo email address. If the parties are not found, the email addresses are stored in CommunicationEvent.note + If however it is detected as spam (external) or when the 'from' email address is missing, the service will not return a communicationEventId </description> <attribute name="messageWrapper" type="org.ofbiz.service.mail.MimeMessageWrapper" mode="IN"/> - <attribute name="communicationEventId" type="String" mode="OUT" optional="false"/> + <attribute name="communicationEventId" type="String" mode="OUT" optional="true"/> </service> <service name="storeForwardedEmail" engine="java" location="org.ofbiz.content.email.EmailServices" invoke="storeForwardedEmail" auth="true"> Modified: incubator/ofbiz/trunk/applications/content/src/org/ofbiz/content/email/EmailServices.java URL: http://svn.apache.org/viewvc/incubator/ofbiz/trunk/applications/content/src/org/ofbiz/content/email/EmailServices.java?view=diff&rev=451194&r1=451193&r2=451194 ============================================================================== --- incubator/ofbiz/trunk/applications/content/src/org/ofbiz/content/email/EmailServices.java (original) +++ incubator/ofbiz/trunk/applications/content/src/org/ofbiz/content/email/EmailServices.java Fri Sep 29 02:26:50 2006 @@ -707,6 +707,7 @@ Address [] addressesTo = message.getRecipients(MimeMessage.RecipientType.TO); Address [] addressesCC = message.getRecipients(MimeMessage.RecipientType.CC); Address [] addressesBCC = message.getRecipients(MimeMessage.RecipientType.BCC); + Debug.logInfo("Processing Incoming Email message from: " + addressesFrom[0].toString() + " to: " + addressesTo[0].toString(), module); // ignore the message when the spam status = yes String spamHeaderName = UtilProperties.getPropertyValue("general.properties", "mail.spam.name", "N"); @@ -716,14 +717,14 @@ String msgHeaderValue = message.getHeader(spamHeaderName)[0]; if(msgHeaderValue != null && msgHeaderValue.startsWith(configHeaderValue)) { Debug.logInfo("Incoming Email message ignored, was detected by external spam checker", module); - ServiceUtil.returnSuccess(); + return ServiceUtil.returnSuccess(" Message Ignored: detected by external spam checker"); } } // if no 'from' addresses specified ignore the message if (addressesFrom == null) { Debug.logInfo("Incoming Email message ignored, had not 'from' email address", module); - ServiceUtil.returnSuccess(); + return ServiceUtil.returnSuccess(" Message Ignored: no 'From' address specified"); } result = getParyInfoFromEmailAddress(addressesFrom, userLogin, dispatcher); @@ -736,7 +737,6 @@ //Get the first address from the list - this is the partyIdTo field of the CommunicationEvent if ((allResults != null) && (allResults.size() > 0)) { Map firstAddressTo = (Map) itr.next(); - partyIdTo = (String)firstAddressTo.get("partyId"); contactMechIdTo = (String)firstAddressTo.get("contactMechId"); } @@ -744,7 +744,6 @@ Map commEventMap = new HashMap(); commEventMap.put("communicationEventTypeId", "AUTO_EMAIL_COMM"); commEventMap.put("contactMechTypeId", "EMAIL_ADDRESS"); - commEventMap.put("partyIdTo", partyIdTo); String subject = message.getSubject(); commEventMap.put("subject", subject); @@ -797,15 +796,22 @@ String commNote = ""; if (partyIdFrom != null) { commEventMap.put("partyIdFrom", partyIdFrom); - commEventMap.put("contactMechIdFrom", contactMechIdFrom); commEventMap.put("contactMechIdTo", contactMechIdTo); - commEventMap.put("statusId", "COM_ENTERED"); } else { - commEventMap.put("statusId", "COM_UNKNOWN_PARTY"); - commNote += "Sent from: " + ((InternetAddress)addressesFrom[0]).getAddress(); + commNote += "Sent from: " + ((InternetAddress)addressesFrom[0]).getAddress() + "; "; + } + + if (partyIdTo != null) { + commEventMap.put("partyIdTo", partyIdTo); + commEventMap.put("contactMechIdTo", contactMechIdTo); + } else { + commNote += "Sent to: " + ((InternetAddress)addressesTo[0]).getAddress() + "; "; } - if (partyIdTo == null) { - commNote += "Sent to: " + ((InternetAddress)addressesTo[0]).getAddress(); + + if (partyIdTo != null && partyIdFrom != null) { + commEventMap.put("statusId", "COM_ENTERED"); + } else { + commEventMap.put("statusId", "COM_UNKNOWN_PARTY"); } if (!("".equals(commNote))) { Modified: incubator/ofbiz/trunk/applications/content/src/org/ofbiz/content/email/EmailWorker.java URL: http://svn.apache.org/viewvc/incubator/ofbiz/trunk/applications/content/src/org/ofbiz/content/email/EmailWorker.java?view=diff&rev=451194&r1=451193&r2=451194 ============================================================================== --- incubator/ofbiz/trunk/applications/content/src/org/ofbiz/content/email/EmailWorker.java (original) +++ incubator/ofbiz/trunk/applications/content/src/org/ofbiz/content/email/EmailWorker.java Fri Sep 29 02:26:50 2006 @@ -79,7 +79,7 @@ && (disposition.equals(Part.ATTACHMENT) || disposition.equals(Part.INLINE)) && (i != bodyContentIndex)) ) { - commEventMap.put("contentName", subject + "-" + i); + commEventMap.put("contentName", subject + "-" + i + " " + part.getFileName()); commEventMap.put("drMimeTypeId", thisContentType); if (thisContentType.startsWith("text")) { String content = (String)part.getContent(); @@ -96,6 +96,7 @@ ByteWrapper imageData = new ByteWrapper(baos.toByteArray()); int len = imageData.getLength(); if (Debug.infoOn()) Debug.logInfo("imageData length: " + len, module); + commEventMap.put("drDataResourceName", part.getFileName()); commEventMap.put("imageData", imageData); commEventMap.put("drDataResourceTypeId", "IMAGE_OBJECT"); commEventMap.put("_imageData_contentType", thisContentType); |
Free forum by Nabble | Edit this page |