Author: amilas
Date: Thu Nov 12 02:59:35 2009
New Revision: 835205

URL: http://svn.apache.org/viewvc?rev=835205&view=rev
Log:
add parameters to set transfer encoding and custom headers

Modified:
    
webservices/commons/trunk/modules/transport/modules/mail/src/main/java/org/apache/axis2/transport/mail/MailConstants.java
    
webservices/commons/trunk/modules/transport/modules/mail/src/main/java/org/apache/axis2/transport/mail/MailTransportSender.java

Modified: 
webservices/commons/trunk/modules/transport/modules/mail/src/main/java/org/apache/axis2/transport/mail/MailConstants.java
URL: 
http://svn.apache.org/viewvc/webservices/commons/trunk/modules/transport/modules/mail/src/main/java/org/apache/axis2/transport/mail/MailConstants.java?rev=835205&r1=835204&r2=835205&view=diff
==============================================================================
--- 
webservices/commons/trunk/modules/transport/modules/mail/src/main/java/org/apache/axis2/transport/mail/MailConstants.java
 (original)
+++ 
webservices/commons/trunk/modules/transport/modules/mail/src/main/java/org/apache/axis2/transport/mail/MailConstants.java
 Thu Nov 12 02:59:35 2009
@@ -94,5 +94,6 @@
     // Custom headers
     /** @see org.apache.axis2.transport.mail.WSMimeMessage */
     public static final String MAIL_HEADER_X_MESSAGE_ID= "X-Message-ID";
+    public static final String TRANSPORT_MAIL_CUSTOM_HEADERS     = 
"transport.mail.custom.headers";
     
 }

Modified: 
webservices/commons/trunk/modules/transport/modules/mail/src/main/java/org/apache/axis2/transport/mail/MailTransportSender.java
URL: 
http://svn.apache.org/viewvc/webservices/commons/trunk/modules/transport/modules/mail/src/main/java/org/apache/axis2/transport/mail/MailTransportSender.java?rev=835205&r1=835204&r2=835205&view=diff
==============================================================================
--- 
webservices/commons/trunk/modules/transport/modules/mail/src/main/java/org/apache/axis2/transport/mail/MailTransportSender.java
 (original)
+++ 
webservices/commons/trunk/modules/transport/modules/mail/src/main/java/org/apache/axis2/transport/mail/MailTransportSender.java
 Thu Nov 12 02:59:35 2009
@@ -392,6 +392,7 @@
         // set Date
         message.setSentDate(new Date());
 
+
         // set SOAPAction header
         message.setHeader(BaseConstants.SOAPACTION, 
msgContext.getSoapAction());
 
@@ -439,10 +440,25 @@
             // always use quoted-printable transfer encoding. Note that 
JavaMail is a bit smarter
             // here because it can choose between 7bit and quoted-printable 
automatically, but it
             // needs to scan the entire content to determine this.
-            String contentType = dataHandler.getContentType().toLowerCase();
-            if (!contentType.startsWith("multipart/") && 
CommonUtils.isTextualPart(contentType)) {
-                mainPart.setHeader("Content-Transfer-Encoding", 
"quoted-printable");
+            if 
(msgContext.getOptions().getProperty("Content-Transfer-Encoding") != null) {
+                mainPart.setHeader("Content-Transfer-Encoding",
+                        (String) 
msgContext.getOptions().getProperty("Content-Transfer-Encoding"));
+            } else {
+                String contentType = 
dataHandler.getContentType().toLowerCase();
+                if (!contentType.startsWith("multipart/") && 
CommonUtils.isTextualPart(contentType)) {
+                    mainPart.setHeader("Content-Transfer-Encoding", 
"quoted-printable");
+                }
+            }
+
+            //setting any custom headers defined by the user
+            if 
(msgContext.getOptions().getProperty(MailConstants.TRANSPORT_MAIL_CUSTOM_HEADERS)
 != null) {
+                Map customTransportHeaders = 
(Map)msgContext.getOptions().getProperty(MailConstants.TRANSPORT_MAIL_CUSTOM_HEADERS);
+                for (Object header: customTransportHeaders.keySet()){
+                    
mainPart.setHeader((String)header,(String)customTransportHeaders.get(header));
+                }
             }
+
+
             
             log.debug("Sending message");
             Transport.send(message);


Reply via email to