in src/main/java/org/apache/maven/plugins/changes/announcement/mailsender/ProjectJavamailMailSender.java [89:159]
public void send(MailMessage mail) throws MailSenderException {
verify(mail);
try {
Authenticator auth = null;
if (getUsername() != null) {
auth = new Authenticator() {
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(getUsername(), getPassword());
}
};
}
Session session = Session.getDefaultInstance(props, auth);
session.setDebug(getLogger().isDebugEnabled());
Message msg = new MimeMessage(session);
InternetAddress addressFrom = new InternetAddress(mail.getFrom().getRfc2822Address());
msg.setFrom(addressFrom);
if (mail.getToAddresses().size() > 0) {
InternetAddress[] addressTo =
new InternetAddress[mail.getToAddresses().size()];
int count = 0;
for (Object o : mail.getToAddresses()) {
String address = ((MailMessage.Address) o).getRfc2822Address();
addressTo[count++] = new InternetAddress(address);
}
msg.setRecipients(Message.RecipientType.TO, addressTo);
}
if (mail.getCcAddresses().size() > 0) {
InternetAddress[] addressCc =
new InternetAddress[mail.getCcAddresses().size()];
int count = 0;
for (Object o : mail.getCcAddresses()) {
String address = ((MailMessage.Address) o).getRfc2822Address();
addressCc[count++] = new InternetAddress(address);
}
msg.setRecipients(Message.RecipientType.CC, addressCc);
}
if (mail.getBccAddresses().size() > 0) {
InternetAddress[] addressBcc =
new InternetAddress[mail.getBccAddresses().size()];
int count = 0;
for (Object o : mail.getBccAddresses()) {
String address = ((MailMessage.Address) o).getRfc2822Address();
addressBcc[count++] = new InternetAddress(address);
}
msg.setRecipients(Message.RecipientType.BCC, addressBcc);
}
// Setting the Subject and Content Type
msg.setSubject(mail.getSubject());
msg.setContent(mail.getContent(), mail.getContentType() == null ? "text/plain" : mail.getContentType());
if (mail.getSendDate() != null) {
msg.setHeader("Date", DateFormatUtils.getDateHeader(mail.getSendDate()));
} else {
msg.setHeader("Date", DateFormatUtils.getDateHeader(new Date()));
}
// Send the message
Transport.send(msg);
} catch (MessagingException e) {
throw new MailSenderException("Error while sending mail.", e);
}
}