public void handleEvent()

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);
        }
    }