Author: jleroux
Date: Fri Dec 15 06:33:18 2006
New Revision: 487570

URL: http://svn.apache.org/viewvc?view=rev&rev=487570
Log:
A new "debug SMTP option" in general.properties to allow easier debugging of 
SMTP emails.

Modified:
    
incubator/ofbiz/trunk/applications/content/src/org/ofbiz/content/email/EmailServices.java
    incubator/ofbiz/trunk/framework/common/config/general.properties

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=487570&r1=487569&r2=487570
==============================================================================
--- 
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 Dec 15 06:33:18 2006
@@ -184,6 +184,8 @@
             }
 
             Session session = Session.getInstance(props);
+            boolean debug = 
UtilProperties.propertyValueEqualsIgnoreCase("general.properties", 
"mail.debug.on", "Y");
+            session.setDebug(debug);                        
 
             MimeMessage mail = new MimeMessage(session);
             mail.setFrom(new InternetAddress(sendFrom));
@@ -571,27 +573,27 @@
      */
     private static Map getParyInfoFromEmailAddress(Address [] addresses, 
GenericValue userLogin, LocalDispatcher dispatcher) throws 
GenericServiceException
     {
-       InternetAddress emailAddress = null;
-       Map map = null;
-       Map result = null;
+        InternetAddress emailAddress = null;
+        Map map = null;
+        Map result = null;
         
         if (addresses == null) return null;
-       
-       if (addresses.length > 0) {
-               Address addr = addresses[0];
-               if (addr instanceof InternetAddress) {
-                       emailAddress = (InternetAddress)addr;
-               }
-       }
-       
-       if (!UtilValidate.isEmpty(emailAddress)) {
-               map = new HashMap();
-               map.put("address", emailAddress.getAddress());
-               map.put("userLogin", userLogin);
-               result = dispatcher.runSync("findPartyFromEmailAddress", map);  
                
-       }       
-       
-       return result;
+        
+        if (addresses.length > 0) {
+            Address addr = addresses[0];
+            if (addr instanceof InternetAddress) {
+                emailAddress = (InternetAddress)addr;
+            }
+        }
+        
+        if (!UtilValidate.isEmpty(emailAddress)) {
+            map = new HashMap();
+            map.put("address", emailAddress.getAddress());
+            map.put("userLogin", userLogin);
+            result = dispatcher.runSync("findPartyFromEmailAddress", map);     
       
+        }        
+        
+        return result;
     }
     
     /*
@@ -613,9 +615,9 @@
                     
                     if (!UtilValidate.isEmpty(emailAddress)) {
                         result = 
dispatcher.runSync("findPartyFromEmailAddress", 
-                                       UtilMisc.toMap("address", 
emailAddress.getAddress(), "userLogin", userLogin));
+                                UtilMisc.toMap("address", 
emailAddress.getAddress(), "userLogin", userLogin));
                         if (result.get("partyId") != null) {
-                               tempResults.add(result);
+                            tempResults.add(result);
                         }
                     }
                 }    
@@ -645,45 +647,45 @@
 
     public static String contentIndex = "";
     private static Map addMessageBody( Map commEventMap, Multipart multipart) 
-       throws MessagingException, IOException {
-       try {
-               int multipartCount = multipart.getCount();
-               for (int i=0; i < multipartCount  && i < 10; i++) { 
-                       Part part = multipart.getBodyPart(i);
-                       String thisContentTypeRaw = part.getContentType();
-                       String content = null;
-                       int idx2 = thisContentTypeRaw.indexOf(";");
-                       if (idx2 == -1) idx2 = thisContentTypeRaw.length();
-                       String thisContentType = 
thisContentTypeRaw.substring(0, idx2);
-                       if (thisContentType == null || 
thisContentType.equals("")) thisContentType = "text/html";
-                       String disposition = part.getDisposition();
-
-                       if (thisContentType.startsWith("multipart") || 
thisContentType.startsWith("Multipart")) {
-                                       contentIndex = contentIndex.concat("." 
+ i);
-                               return addMessageBody(commEventMap, (Multipart) 
part.getContent());
-                       }
-                       // See this case where the disposition of the inline 
text is null
-                       else if ((disposition == null) && (i == 0) && 
thisContentType.startsWith("text")) {
-                               content = (String)part.getContent();
-                               if (UtilValidate.isNotEmpty(content)) {
-                                       contentIndex = contentIndex.concat("." 
+ i);
-                                       commEventMap.put("content", content);
-                                       commEventMap.put("contentMimeTypeId", 
thisContentType);
-                                       return commEventMap;
-                               }
-                       } else if ((disposition != null)
-                                       && (disposition.equals(Part.ATTACHMENT) 
|| disposition.equals(Part.INLINE))
-                                       && thisContentType.startsWith("text")) {
-                                       contentIndex = contentIndex.concat("." 
+ i);
-                               commEventMap.put("content", part.getContent());
-                               commEventMap.put("contentMimeTypeId", 
thisContentType);
-                               return commEventMap;
-                       }
-               }
-               return commEventMap;
-       } catch (MessagingException e) {
-               Debug.logError(e, module);
-               return ServiceUtil.returnError(e.getMessage());
+    throws MessagingException, IOException {
+        try {
+            int multipartCount = multipart.getCount();
+            for (int i=0; i < multipartCount  && i < 10; i++) { 
+                Part part = multipart.getBodyPart(i);
+                String thisContentTypeRaw = part.getContentType();
+                String content = null;
+                int idx2 = thisContentTypeRaw.indexOf(";");
+                if (idx2 == -1) idx2 = thisContentTypeRaw.length();
+                String thisContentType = thisContentTypeRaw.substring(0, idx2);
+                if (thisContentType == null || thisContentType.equals("")) 
thisContentType = "text/html";
+                String disposition = part.getDisposition();
+
+                if (thisContentType.startsWith("multipart") || 
thisContentType.startsWith("Multipart")) {
+                    contentIndex = contentIndex.concat("." + i);
+                    return addMessageBody(commEventMap, (Multipart) 
part.getContent());
+                }
+                // See this case where the disposition of the inline text is 
null
+                else if ((disposition == null) && (i == 0) && 
thisContentType.startsWith("text")) {
+                    content = (String)part.getContent();
+                    if (UtilValidate.isNotEmpty(content)) {
+                        contentIndex = contentIndex.concat("." + i);
+                        commEventMap.put("content", content);
+                        commEventMap.put("contentMimeTypeId", thisContentType);
+                        return commEventMap;
+                    }
+                } else if ((disposition != null)
+                        && (disposition.equals(Part.ATTACHMENT) || 
disposition.equals(Part.INLINE))
+                        && thisContentType.startsWith("text")) {
+                    contentIndex = contentIndex.concat("." + i);
+                    commEventMap.put("content", part.getContent());
+                    commEventMap.put("contentMimeTypeId", thisContentType);
+                    return commEventMap;
+                }
+            }
+            return commEventMap;
+        } catch (MessagingException e) {
+            Debug.logError(e, module);
+            return ServiceUtil.returnError(e.getMessage());
         } catch (IOException e) {
             Debug.logError(e, module);
             return ServiceUtil.returnError(e.getMessage());
@@ -720,7 +722,7 @@
      * @return
      */
     public static Map storeIncomingEmail(DispatchContext dctx, Map context) {
-       
+        
         GenericDelegator delegator = dctx.getDelegator();
         LocalDispatcher dispatcher = dctx.getDispatcher();
         MimeMessageWrapper wrapper = (MimeMessageWrapper) 
context.get("messageWrapper");
@@ -730,7 +732,7 @@
         String partyIdTo = null;
         String partyIdFrom = null;
         String contentType = null;
-               String communicationEventId = null;
+        String communicationEventId = null;
         String contactMechIdFrom = null;
         String contactMechIdTo = null;
         
@@ -746,8 +748,8 @@
             Address [] addressesCC = 
message.getRecipients(MimeMessage.RecipientType.CC);
             Address [] addressesBCC = 
message.getRecipients(MimeMessage.RecipientType.BCC);
             Debug.logInfo("Processing Incoming Email message from: " + 
-                       (addressesFrom[0] == null? "not found" : 
addressesFrom[0].toString()) + " to: " + 
-                                       (addressesTo[0] == null? "not found" : 
addressesTo[0].toString()), module);
+                    (addressesFrom[0] == null? "not found" : 
addressesFrom[0].toString()) + " to: " + 
+                            (addressesTo[0] == null? "not found" : 
addressesTo[0].toString()), module);
 
             // ignore the message when the spam status = yes
             String spamHeaderName = 
UtilProperties.getPropertyValue("general.properties", "mail.spam.name", "N");
@@ -794,11 +796,11 @@
                 partyIdTo = (String)result.get("partyId");
                 contactMechIdTo = (String)result.get("contactMechId");
             }
-               if (userLogin.get("partyId") == null && partyIdTo != null) { 
-                   int ch = 0;
-                   for (ch=partyIdTo.length(); ch > 0 && 
Character.isDigit(partyIdTo.charAt(ch-1)); ch--);
-                   userLogin.put("partyId", partyIdTo.substring(0,ch)); 
//allow services to be called to have prefix
-               }
+            if (userLogin.get("partyId") == null && partyIdTo != null) { 
+                int ch = 0;
+                for (ch=partyIdTo.length(); ch > 0 && 
Character.isDigit(partyIdTo.charAt(ch-1)); ch--);
+                userLogin.put("partyId", partyIdTo.substring(0,ch)); //allow 
services to be called to have prefix
+            }
             
             // get the 'from' partyId
             result = getParyInfoFromEmailAddress(addressesFrom, userLogin, 
dispatcher);
@@ -806,31 +808,31 @@
             contactMechIdFrom = (String)result.get("contactMechId");
             
             Map commEventMap = new HashMap();
-           commEventMap.put("communicationEventTypeId", "AUTO_EMAIL_COMM");
-           commEventMap.put("contactMechTypeId", "EMAIL_ADDRESS");
-           String subject = message.getSubject();
-           commEventMap.put("subject", subject);
-               
-               commEventMap.put("entryDate", nowTimestamp);
-               
-               //Set sent and received dates
-               commEventMap.put("datetimeStarted", 
UtilDateTime.toTimestamp(message.getSentDate()));
-               commEventMap.put("datetimeEnded", 
UtilDateTime.toTimestamp(message.getReceivedDate()));
+            commEventMap.put("communicationEventTypeId", "AUTO_EMAIL_COMM");
+            commEventMap.put("contactMechTypeId", "EMAIL_ADDRESS");
+            String subject = message.getSubject();
+            commEventMap.put("subject", subject);
+            
+            commEventMap.put("entryDate", nowTimestamp);
+            
+            //Set sent and received dates
+            commEventMap.put("datetimeStarted", 
UtilDateTime.toTimestamp(message.getSentDate()));
+            commEventMap.put("datetimeEnded", 
UtilDateTime.toTimestamp(message.getReceivedDate()));
 
             // get the content(type) part
-               if (contentType.startsWith("text")) {
-                       commEventMap.put("content", message.getContent());
-                       commEventMap.put("contentMimeTypeId", contentType);
-               } else if (contentType.startsWith("multipart") || 
contentType.startsWith("Multipart")) {
-                       contentIndex = "";
-                       commEventMap = addMessageBody(commEventMap, (Multipart) 
message.getContent());
-               }                       
-               
+            if (contentType.startsWith("text")) {
+                commEventMap.put("content", message.getContent());
+                commEventMap.put("contentMimeTypeId", contentType);
+            } else if (contentType.startsWith("multipart") || 
contentType.startsWith("Multipart")) {
+                contentIndex = "";
+                commEventMap = addMessageBody(commEventMap, (Multipart) 
message.getContent());
+            }                
+            
             // store from/to parties, but when not found make a note of the 
email to/from address in the workEffort Note Section.
             String commNote = "";
             if (partyIdFrom != null) {
-                       commEventMap.put("partyIdFrom", partyIdFrom);           
        
-                       commEventMap.put("contactMechIdFrom", 
contactMechIdFrom);
+                commEventMap.put("partyIdFrom", partyIdFrom);                
+                commEventMap.put("contactMechIdFrom", contactMechIdFrom);
             } else {
                 commNote += "Sent from: " +  
((InternetAddress)addressesFrom[0]).getAddress() + "; ";
                 commNote += "Sent Name from: " + 
((InternetAddress)addressesFrom[0]).getPersonal() + "; ";
@@ -859,15 +861,15 @@
                 commEventMap.put("note", commNote);
             }
             
-               commEventMap.put("userLogin", userLogin);
-               result = dispatcher.runSync("createCommunicationEvent", 
commEventMap);
-               communicationEventId = 
(String)result.get("communicationEventId");
+            commEventMap.put("userLogin", userLogin);
+            result = dispatcher.runSync("createCommunicationEvent", 
commEventMap);
+            communicationEventId = (String)result.get("communicationEventId");
             
             // store attachements
-               if (contentType.startsWith("multipart") || 
contentType.startsWith("Multipart")) {
-                       int attachmentCount = 
EmailWorker.addAttachmentsToCommEvent(message, communicationEventId, 
dispatcher, userLogin);
-                       if (Debug.infoOn()) Debug.logInfo(attachmentCount + " 
attachments added to CommunicationEvent:" + communicationEventId,module);
-               }
+            if (contentType.startsWith("multipart") || 
contentType.startsWith("Multipart")) {
+                int attachmentCount = 
EmailWorker.addAttachmentsToCommEvent(message, communicationEventId, 
dispatcher, userLogin);
+                if (Debug.infoOn()) Debug.logInfo(attachmentCount + " 
attachments added to CommunicationEvent:" + communicationEventId,module);
+            }
             
             //For all other addresses create a CommunicationEventRole
             while (itr.hasNext()) {
@@ -883,11 +885,11 @@
                 Map input = UtilMisc.toMap("communicationEventId", 
communicationEventId, "partyId", partyId, "roleTypeId", "_NA_", "userLogin", 
userLogin, "contactMechId", (String)address.get("contactMechId"));
                 dispatcher.runSync("createCommunicationEventRole", input);
             }
-               
-               Map results = ServiceUtil.returnSuccess();
+            
+            Map results = ServiceUtil.returnSuccess();
             results.put("communicationEventId", communicationEventId);
             results.put("statusId", commEventMap.get("statusId"));
-               return results;
+            return results;
         } catch (MessagingException e) {
             Debug.logError(e, module);
             return ServiceUtil.returnError(e.getMessage());

Modified: incubator/ofbiz/trunk/framework/common/config/general.properties
URL: 
http://svn.apache.org/viewvc/incubator/ofbiz/trunk/framework/common/config/general.properties?view=diff&rev=487570&r1=487569&r2=487570
==============================================================================
--- incubator/ofbiz/trunk/framework/common/config/general.properties (original)
+++ incubator/ofbiz/trunk/framework/common/config/general.properties Fri Dec 15 
06:33:18 2006
@@ -48,6 +48,9 @@
 #mail.smtp.auth.user=
 #mail.smtp.auth.password=
 
+# -- debug SMTP mail option enabled (Y|N)
+mail.debug.on=N
+
 # -- HTTP upload max size in bytes (-1 for unlimited)
 http.upload.max.size=-1
 


Reply via email to