private static void sendMessage()

in gflog-mail/src/main/java/com/epam/deltix/gflog/mail/appender/SmtpAppender.java [121:178]


    private static void sendMessage(final ByteBuffer body, final LogRecord record, final SmtpSettings settings) {
        final Properties props = new Properties(System.getProperties());

        if (settings.getSecure() != null) {
            if (settings.getSecure().equals("STARTTLS")) {
                props.put("mail.smtp.starttls.enable", "true");
            } else if (settings.getSecure().equals("SSL")) {
                props.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
            }
        }

        props.put("mail.smtp.timeout", settings.getTimeout());

        if (settings.getHost() != null) {
            props.put("mail.smtp.host", settings.getHost());
        }

        if (settings.getPort() > 0) {
            props.put("mail.smtp.port", settings.getPort());
        }

        Authenticator auth = null;
        if (settings.getUsername() != null) {
            auth = new UsernamePasswordAuthenticator(settings.getUsername(), settings.getPassword());
            props.put("mail.smtp.user", settings.getUsername());
            props.put("mail.smtp.auth", "true");
        }

        final Session session = Session.getInstance(props, auth);
        session.setDebug(settings.isDebug());

        final MimeMessage message = new MimeMessage(session);

        try {
            if (settings.getFrom() != null) {
                message.setFrom(getAddress(settings.getFrom()));
            } else {
                message.setFrom();
            }

            message.setRecipients(Message.RecipientType.TO, parseAddress(settings.getTo()));
            message.setSubject(getSubject(settings.getSubject(), record, settings.getMaxSubjectLength()));

            final MimeBodyPart part = new MimeBodyPart();
            part.setDataHandler(new DataHandler(new ByteBufferDataSource(body)));

            final Multipart mp = new MimeMultipart();
            mp.addBodyPart(part);
            message.setContent(mp);

            message.setSentDate(new Date());

            // do send message
            Transport.send(message);
        } catch (final Exception ex) {
            LogDebug.warn("can't send email due to: " + ex.getMessage(), ex);
        }
    }