package utils; import play.Play; import java.util.Properties; import javax.mail.*; import javax.mail.internet.InternetAddress; import javax.mail.internet.MimeBodyPart; import javax.mail.internet.MimeMessage; import javax.mail.internet.MimeMultipart; public class Email { static String key = Play.application().configuration().getString("mail.auth.key"); static String secret = Play.application().configuration().getString("mail.auth.secret"); public static void send(String to, String subject, String body) { String from = Play.application().configuration().getString("mail.smtp.from"); String host = Play.application().configuration().getString("mail.smtp.host"); int port = Play.application().configuration().getInt("mail.smtp.port"); boolean auth = Play.application().configuration().getBoolean("mail.smtp.auth"); send(to, subject, body, from, host, port, auth); } public static void send(String to, String subject, String body, String from, String host, int port, boolean auth) { Properties properties = new Properties(); properties.put("mail.smtp.host", host); properties.put("mail.smtp.port", port); properties.put("mail.smtp.auth", auth); properties.put("mail.smtp.socketFactory.port", port); properties.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory"); Authenticator authenticator = null; if (auth) { authenticator = new javax.mail.Authenticator() { protected PasswordAuthentication getPasswordAuthentication() { return new PasswordAuthentication(key, secret); } }; } Session session = Session.getInstance(properties, authenticator); try { Message message = new MimeMessage(session); message.setFrom(new InternetAddress(from)); message.setRecipients(Message.RecipientType.TO, InternetAddress.parse(to)); message.setSubject(subject); MimeBodyPart mimeBody = new MimeBodyPart(); mimeBody.setContent(body, "text/html"); MimeMultipart mimeMulti = new MimeMultipart(); mimeMulti.addBodyPart(mimeBody); message.setContent(mimeMulti); Transport.send(message); } catch (MessagingException e) { throw new RuntimeException(e); } } }