package eu.geoknow.generator.utils; import java.util.Properties; import javax.mail.Authenticator; import javax.mail.Message; import javax.mail.MessagingException; import javax.mail.PasswordAuthentication; import javax.mail.Session; import javax.mail.Transport; import javax.mail.internet.InternetAddress; import javax.mail.internet.MimeMessage; public class TLSEmailSender implements EmailSender { private String smtpHost; private String smtpPort; private String fromEmail; private String emailUsername; private String emailPassword; public TLSEmailSender(String smtpHost, String smtpPort, String fromEmail, String emailUsername, String emailPassword) { this.smtpHost = smtpHost; this.smtpPort = smtpPort; this.fromEmail = fromEmail; this.emailUsername = emailUsername; this.emailPassword = emailPassword; } public void send(String toEmail, String msgSubject, String msgText) throws MessagingException { Properties props = new Properties(); props.put("mail.smtp.starttls.enable", "true"); props.put("mail.smtp.host", smtpHost); props.put("mail.smtp.port", smtpPort); Session session; if (emailUsername == null || emailUsername.isEmpty()) session = Session.getDefaultInstance(props); else { props.put("mail.smtp.auth", "true"); props.setProperty("mail.mime.address.strict", "false"); session = Session.getInstance(props, new Authenticator() { protected PasswordAuthentication getPasswordAuthentication() { return new PasswordAuthentication(emailUsername, emailPassword); } }); } Message message = new MimeMessage(session); message.setFrom(new InternetAddress(fromEmail)); message.setRecipients(Message.RecipientType.TO, InternetAddress.parse(toEmail)); message.setSubject(msgSubject); message.setText(msgText); Transport.send(message); } }