in src/main/java/org/apache/sling/clam/result/internal/MailSendingScanResultHandler.java [140:204]
private void sendMail(final Map<String, Object> properties) throws Exception {
final MailService mailService = this.mailService;
final MessageBuilder builder = mailService.getMessageBuilder();
final String from = configuration.mail_from();
final String[] to = configuration.mail_to();
final String[] cc = configuration.mail_cc();
final String[] bcc = configuration.mail_bcc();
final String[] replyTo = configuration.mail_replyTo();
final String subject = configuration.mail_subject();
final String text = configuration.mail_text();
final String html = configuration.mail_html();
if (StringUtils.isNotBlank(from)) {
builder.from(from);
}
for (final String address : to) {
if (StringUtils.isNotBlank(address)) {
builder.to(address);
}
}
for (final String address : cc) {
if (StringUtils.isNotBlank(address)) {
builder.cc(address);
}
}
for (final String address : bcc) {
if (StringUtils.isNotBlank(address)) {
builder.bcc(address);
}
}
for (final String address : replyTo) {
if (StringUtils.isNotBlank(address)) {
builder.replyTo(address);
}
}
if (StringUtils.isNotBlank(subject)) {
final IContext context = new Context(Locale.ENGLISH, properties);
final TemplateSpec templateSpec = new TemplateSpec(subject, TemplateMode.TEXT);
final String s = templateEngine.process(templateSpec, context);
builder.subject(s);
}
if (StringUtils.isNotBlank(text)) {
final IContext context = new Context(Locale.ENGLISH, properties);
final TemplateSpec templateSpec = new TemplateSpec(text, TemplateMode.TEXT);
final String t = templateEngine.process(templateSpec, context);
builder.text(t);
}
if (StringUtils.isNotBlank(html)) {
final IContext context = new Context(Locale.ENGLISH, properties);
final TemplateSpec templateSpec = new TemplateSpec(html, TemplateMode.HTML);
final String h = templateEngine.process(templateSpec, context);
builder.html(h);
}
final MimeMessage message = builder.build();
logger.debug("sending scan result mail: {}", properties);
final CompletableFuture<Void> future = mailService.sendMessage(message);
future.whenComplete((v, e) -> {
if (Objects.nonNull(e)) {
logger.error("sending scan result mail failed", e);
} else {
logger.debug("sending scan result mail succeeded");
}
});
}