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