in bindings/servicemix-mail/src/main/java/org/apache/servicemix/mail/marshaler/DefaultMailMarshaler.java [387:480]
protected void fillMailHeaders(MimeMessage mimeMessage, NormalizedMessage nmsg, String configuredSender, String configuredReceiver)
throws Exception {
// fill the "To" field of the mail
// if there is a TO property, this overrides the standard receiver
if (nmsg.getProperty(AbstractMailMarshaler.MSG_TAG_TO) != null) {
Address[] to = InternetAddress.parse(nmsg.getProperty(AbstractMailMarshaler.MSG_TAG_TO)
.toString());
if (to != null) {
mimeMessage.setRecipients(Message.RecipientType.TO, to);
}
// there is no TO property, so try the configured receiver
} else {
if (configuredReceiver != null) {
Address[] to = InternetAddress.parse(configuredReceiver);
if (to != null) {
mimeMessage.setRecipients(Message.RecipientType.TO, to);
}
}
}
// fill the "Cc" field of the mail
if (nmsg.getProperty(AbstractMailMarshaler.MSG_TAG_CC) != null) {
Address[] cc = InternetAddress.parse(nmsg.getProperty(AbstractMailMarshaler.MSG_TAG_CC)
.toString());
if (cc != null) {
mimeMessage.setRecipients(Message.RecipientType.CC, cc);
}
}
// fill the "Bcc" field of the mail
if (nmsg.getProperty(AbstractMailMarshaler.MSG_TAG_BCC) != null) {
Address[] bcc = InternetAddress.parse(nmsg.getProperty(AbstractMailMarshaler.MSG_TAG_BCC)
.toString());
if (bcc != null) {
mimeMessage.setRecipients(Message.RecipientType.BCC, bcc);
}
}
// fill the "From" field of the mail
if (configuredSender != null && configuredSender.trim().length() > 0) {
// if sender is configured through xbean then use it
Address from = InternetAddress.parse(configuredSender)[0];
if (from != null) {
mimeMessage.setFrom(from);
}
} else if (nmsg.getProperty(AbstractMailMarshaler.MSG_TAG_FROM) != null) {
// use the delivered From field from the message
Address from = InternetAddress.parse(nmsg.getProperty(AbstractMailMarshaler.MSG_TAG_FROM)
.toString())[0];
if (from != null) {
mimeMessage.setFrom(from);
}
} else {
// there was no From field delivered, so use the default sender
Address from = InternetAddress.parse(getDefaultSenderForOutgoingMails())[0];
if (from != null) {
mimeMessage.setFrom(from);
}
}
// fill the "Subject" field of the mail
if (nmsg.getProperty(AbstractMailMarshaler.MSG_TAG_SUBJECT) != null) {
String subject = nmsg.getProperty(AbstractMailMarshaler.MSG_TAG_SUBJECT).toString();
if (subject != null) {
mimeMessage.setSubject(subject);
} else {
mimeMessage.setSubject(AbstractMailMarshaler.DUMMY_SUBJECT);
}
} else {
mimeMessage.setSubject(AbstractMailMarshaler.DUMMY_SUBJECT);
}
// fill the "Date" field of the mail
if (nmsg.getProperty(AbstractMailMarshaler.MSG_TAG_SENTDATE) != null) {
String sentDate = nmsg.getProperty(AbstractMailMarshaler.MSG_TAG_SENTDATE).toString();
if (sentDate != null) {
try {
mimeMessage.setSentDate(DateFormat.getInstance().parse(sentDate));
} catch (ParseException ex) {
// unparsable date
mimeMessage.setSentDate(new Date());
}
}
}
// fill the "Reply-To" field of the mail
if (nmsg.getProperty(AbstractMailMarshaler.MSG_TAG_REPLYTO) != null) {
Address[] replyTo = InternetAddress.parse(nmsg.getProperty(AbstractMailMarshaler.MSG_TAG_REPLYTO)
.toString());
if (replyTo != null) {
mimeMessage.setReplyTo(replyTo);
}
}
}