diff --git a/pom.xml b/pom.xml index c4559fa..b77705b 100644 --- a/pom.xml +++ b/pom.xml @@ -74,14 +74,17 @@ - javax.mail - javax.mail-api + org.simplejavamail + simple-java-mail + 8.12.4 com.sun.mail - javax.mail + jakarta.mail + 2.0.1 + ch.qos.logback diff --git a/src/main/java/org/reactome/server/tools/indexer/util/MailUtil.java b/src/main/java/org/reactome/server/tools/indexer/util/MailUtil.java index 998d2d0..73c8f92 100644 --- a/src/main/java/org/reactome/server/tools/indexer/util/MailUtil.java +++ b/src/main/java/org/reactome/server/tools/indexer/util/MailUtil.java @@ -2,29 +2,29 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; - -import javax.mail.Message; -import javax.mail.MessagingException; -import javax.mail.Session; -import javax.mail.Transport; -import javax.mail.internet.InternetAddress; -import javax.mail.internet.MimeMessage; -import java.util.Properties; +import org.simplejavamail.api.mailer.Mailer; +import org.simplejavamail.api.email.Email; +import org.simplejavamail.email.EmailBuilder; +import org.simplejavamail.mailer.MailerBuilder; /** - * Mail Utility class. + * Mail Utility class using Simple Java Mail. + * + * Note: If your SMTP server requires authentication, + * supply the username and password to withSMTPServer(...). * - * @author Guilherme S. Viteri */ public class MailUtil { private static final Logger logger = LoggerFactory.getLogger("importLogger"); private static MailUtil mailUtil; - private Properties properties; + private final Mailer mailer; private MailUtil(String host, Integer port) { - properties = new Properties(); - properties.setProperty("mail.smpt.host", host); - properties.setProperty("mail.smtp.port", String.valueOf(port)); + // Configure the Mailer using the SMTP host and port. + // If no authentication is required, pass null for username and password. + this.mailer = MailerBuilder + .withSMTPServer(host, port, null, null) + .buildMailer(); } public static MailUtil getInstance(String host, Integer port) { @@ -35,17 +35,17 @@ public static MailUtil getInstance(String host, Integer port) { } public void send(String from, String to, String subject, String text) { - Session session = Session.getDefaultInstance(properties); try { - MimeMessage message = new MimeMessage(session); - message.setFrom(new InternetAddress(from)); - message.addRecipient(Message.RecipientType.TO, new InternetAddress(to)); - message.setSubject(subject); - message.setText(text); - Transport.send(message); - } catch (MessagingException e) { - logger.error("Error sending notification message"); + Email email = EmailBuilder.startingBlank() + .from(from) + .to(to) + .withSubject(subject) + .withPlainText(text) + .buildEmail(); + + mailer.sendMail(email); + } catch (Exception e) { + logger.error("Error sending notification message", e); } } } -