From 8241e97d6f68cec00b85c72c106849da3d829cc7 Mon Sep 17 00:00:00 2001 From: Joel Weiser Date: Sun, 16 Feb 2025 02:24:21 -0500 Subject: [PATCH 1/3] substitute javax.mail for Simple Java Mail --- pom.xml | 9 ++-- .../server/tools/indexer/util/MailUtil.java | 48 +++++++++---------- 2 files changed, 27 insertions(+), 30 deletions(-) diff --git a/pom.xml b/pom.xml index c4559fa..14785c8 100644 --- a/pom.xml +++ b/pom.xml @@ -74,12 +74,9 @@ - javax.mail - javax.mail-api - - - com.sun.mail - javax.mail + org.simplejavamail + simple-java-mail + 8.12.4 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..e439835 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.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) + .build(); + + mailer.sendMail(email); + } catch (Exception e) { + logger.error("Error sending notification message", e); } } } - From 448f900840b4ff637054f08e5c0c0a9e4f307d23 Mon Sep 17 00:00:00 2001 From: Joel Weiser Date: Sun, 16 Feb 2025 03:28:08 -0500 Subject: [PATCH 2/3] fixes email build --- .../reactome/server/tools/indexer/util/MailUtil.java | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) 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 e439835..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 @@ -3,7 +3,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.simplejavamail.api.mailer.Mailer; -import org.simplejavamail.email.Email; +import org.simplejavamail.api.email.Email; import org.simplejavamail.email.EmailBuilder; import org.simplejavamail.mailer.MailerBuilder; @@ -37,11 +37,11 @@ public static MailUtil getInstance(String host, Integer port) { public void send(String from, String to, String subject, String text) { try { Email email = EmailBuilder.startingBlank() - .from(from) - .to(to) - .withSubject(subject) - .withPlainText(text) - .build(); + .from(from) + .to(to) + .withSubject(subject) + .withPlainText(text) + .buildEmail(); mailer.sendMail(email); } catch (Exception e) { From 646e3721a0b10cd77501392770d31b5fffa44874 Mon Sep 17 00:00:00 2001 From: Joel Weiser Date: Sun, 16 Feb 2025 03:42:51 -0500 Subject: [PATCH 3/3] adds Jakarta Mail dependency for use by Simple Java Mail --- pom.xml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/pom.xml b/pom.xml index 14785c8..b77705b 100644 --- a/pom.xml +++ b/pom.xml @@ -78,6 +78,12 @@ simple-java-mail 8.12.4 + + com.sun.mail + jakarta.mail + 2.0.1 + +