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