Hans,
I noticed that you had changed the communicationEventId of the storeEmailAsCommunication service to optional="false". Does it have to be set to false? It actually would break the service for sending emails out to a ContactList if it were set to false, so I changed it back to true (SVN r 463007). Let me know if this might cause any problems for you, and we'll work out some other way if it does. Begin forwarded message: > From: [hidden email] > Date: September 29, 2006 2:26:51 AM PDT > To: [hidden email] > Subject: svn commit: r451194 - in /incubator/ofbiz/trunk/ > applications/content: servicedef/services_email.xml src/org/ofbiz/ > content/email/EmailServices.java src/org/ofbiz/content/email/ > EmailWorker.java > Reply-To: [hidden email] > > 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); > Best Regards, Si [hidden email] |
Si,
It is a bit strange, because i checked the service and it will never return a communicationEventId even if there is one created. I use this service often for receiving emails and it did not give a problem here. perhaps we should change this service so it will return a communicationEventId? It could however fall over and not create a communicationEventId so the communicationEventId attribute in de service definition should still be optional. Hans On Thursday 12 October 2006 05:22, Si Chen wrote: > Hans, > > I noticed that you had changed the communicationEventId of the > storeEmailAsCommunication service to optional="false". Does it have > to be set to false? It actually would break the service for sending > emails out to a ContactList if it were set to false, so I changed it > back to true (SVN r 463007). Let me know if this might cause any > problems for you, and we'll work out some other way if it does. > > Begin forwarded message: > > From: [hidden email] > > Date: September 29, 2006 2:26:51 AM PDT > > To: [hidden email] > > Subject: svn commit: r451194 - in /incubator/ofbiz/trunk/ > > applications/content: servicedef/services_email.xml src/org/ofbiz/ > > content/email/EmailServices.java src/org/ofbiz/content/email/ > > EmailWorker.java > > Reply-To: [hidden email] > > > > 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); > > Best Regards, > > Si > [hidden email] Regards, Hans Bakker ANT Websystems Co.,Ltd (http://www.antwebsystems.com) If you want to verify that this message really originates from from the above person, download the public key from: http://www.antwebsystems.com/hbakkerAntwebsystems.asc attachment0 (196 bytes) Download Attachment |
Hans,
This is actually an IN parameter of the storeEmailAsCommunication service that I'm referring to . The reason it was there is that if the email had been sent by creating a CommunicationEvent in the first place, we don't want to store it again (obviously.) Perhaps you are looking at a different service? I noticed you had two changes related to communicationEventId in this commit. On Oct 11, 2006, at 3:53 PM, Hans Bakker wrote: > definition should still be optional. Best Regards, Si [hidden email] |
Free forum by Nabble | Edit this page |