From 6b08d2adfabccf23c3618ab08c7661a5eb51a482 Mon Sep 17 00:00:00 2001 From: Mark Fisher Date: Mon, 18 Apr 2011 12:58:27 -0400 Subject: [PATCH] INT-1869 added support for outbound MimeMessage payloads --- .../mail/MailSendingMessageHandler.java | 20 +++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/spring-integration-mail/src/main/java/org/springframework/integration/mail/MailSendingMessageHandler.java b/spring-integration-mail/src/main/java/org/springframework/integration/mail/MailSendingMessageHandler.java index 817e3c1653..81641098b9 100644 --- a/spring-integration-mail/src/main/java/org/springframework/integration/mail/MailSendingMessageHandler.java +++ b/spring-integration-mail/src/main/java/org/springframework/integration/mail/MailSendingMessageHandler.java @@ -84,25 +84,29 @@ public class MailSendingMessageHandler extends AbstractMessageHandler { @SuppressWarnings("unchecked") private MailMessage convertMessageToMailMessage(Message message) { MailMessage mailMessage = null; - if (message.getPayload() instanceof MailMessage) { - mailMessage = (MailMessage) message.getPayload(); + Object payload = message.getPayload(); + if (payload instanceof MimeMessage) { + mailMessage = new MimeMailMessage((MimeMessage) payload); } - else if (message.getPayload() instanceof byte[]) { + else if (payload instanceof MailMessage) { + mailMessage = (MailMessage) payload; + } + else if (payload instanceof byte[]) { mailMessage = this.createMailMessageFromByteArrayMessage((Message) message); } - else if (message.getPayload() instanceof String) { + else if (payload instanceof String) { String contentType = (String) message.getHeaders().get(MailHeaders.CONTENT_TYPE); - if (StringUtils.hasText(contentType)){ + if (StringUtils.hasText(contentType)) { mailMessage = this.createMailMessageWithContentType((Message) message, contentType); } else { mailMessage = new SimpleMailMessage(); - mailMessage.setText((String) message.getPayload()); - } + mailMessage.setText((String) payload); + } } else { throw new MessageHandlingException(message, "Unable to create MailMessage from payload type [" - + message.getPayload().getClass().getName() + "], expected byte array or String."); + + message.getPayload().getClass().getName() + "], expected MimeMessage, MailMessage, byte array or String."); } this.applyHeadersToMailMessage(mailMessage, message.getHeaders()); return mailMessage;