MailSendingMessageConsumer now fails with an IllegalStateException if no value is available for MailHeaders.TO. The array-based header values (e.g. to, cc, bcc) are now converted from comma-delimited Strings if necessary.

This commit is contained in:
Mark Fisher
2008-09-26 21:08:57 +00:00
parent e6c41360db
commit 34979a6927

View File

@@ -30,6 +30,7 @@ import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.mail.javamail.MimeMailMessage;
import org.springframework.mail.javamail.MimeMessageHelper;
import org.springframework.util.Assert;
import org.springframework.util.StringUtils;
/**
* A {@link MessageConsumer} implementation for sending mail.
@@ -120,9 +121,8 @@ public class MailSendingMessageConsumer implements MessageConsumer {
mailMessage.setSubject(subject);
}
String[] to = this.retrieveHeaderValueAsStringArray(headers, MailHeaders.TO);
if (to != null) {
mailMessage.setTo(to);
}
Assert.state(to != null, "no value available for the 'MailHeaders.TO' header");
mailMessage.setTo(to);
String[] cc = this.retrieveHeaderValueAsStringArray(headers, MailHeaders.CC);
if (cc != null) {
mailMessage.setCc(cc);
@@ -148,7 +148,7 @@ public class MailSendingMessageConsumer implements MessageConsumer {
return (String[]) value;
}
if (value instanceof String) {
return new String[] { (String) value };
return StringUtils.commaDelimitedListToStringArray((String) value);
}
}
return null;