in alerting/alerter/email/src/main/java/org/apache/karaf/decanter/alerting/email/EmailAlerter.java [90:147]
public void handleEvent(Event event) {
Session session = Session.getDefaultInstance(properties);
MimeMessage message = new MimeMessage(session);
try {
// set from
if (event.getProperty("from") != null) {
message.setFrom(new InternetAddress(event.getProperty("from").toString()));
} else if (event.getProperty("alert.email.from") != null) {
message.setFrom(new InternetAddress(event.getProperty("alert.email.from").toString()));
} else if (from != null){
message.setFrom(from);
} else {
message.setFrom("decanter@karaf.apache.org");
}
// set to
if (event.getProperty("to") != null) {
message.addRecipients(Message.RecipientType.TO, event.getProperty("to").toString());
} else if (event.getProperty("alert.email.to") != null) {
message.addRecipients(Message.RecipientType.TO, event.getProperty("alert.email.to").toString());
} else if (to != null) {
message.addRecipients(Message.RecipientType.TO, to);
} else {
LOGGER.warn("to destination is not defined");
return;
}
// set cc
if (event.getProperty("cc") != null) {
message.addRecipients(Message.RecipientType.CC, event.getProperty("cc").toString());
} else if (event.getProperty("alert.email.cc") != null) {
message.addRecipients(Message.RecipientType.CC, event.getProperty("alert.email.cc").toString());
} else if (cc != null) {
message.addRecipients(Message.RecipientType.CC, cc);
}
// set bcc
if (event.getProperty("bcc") != null) {
message.addRecipients(Message.RecipientType.BCC, event.getProperty("bcc").toString());
} else if (event.getProperty("alert.email.bcc") != null) {
message.addRecipients(Message.RecipientType.BCC, event.getProperty("alert.email.bcc").toString());
} else if (bcc != null) {
message.addRecipients(Message.RecipientType.BCC, bcc);
}
// set subject
message.setSubject(formatter.formatSubject(subjectTemplate, event));
// set body
String contentType = bodyType;
contentType = (event.getProperty("body.type") != null) ? event.getProperty("body.type").toString() : contentType;
contentType = (event.getProperty("alert.email.body.type") != null) ? event.getProperty("alert.email.body.type").toString() : contentType;
message.setContent(formatter.formatBody(bodyTemplate, event), contentType);
// send email
if (properties.get("mail.smtp.user") != null) {
Transport.send(message, (String) properties.get("mail.smtp.user"), (String) properties.get("mail.smtp.password"));
} else {
Transport.send(message);
}
} catch (Exception e) {
LOGGER.error("Can't send the alert e-mail", e);
}
}