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);