From bd0460e7546e0c5dcb7bce5dbc65ebd184968d40 Mon Sep 17 00:00:00 2001 From: Francois G Date: Mon, 4 Sep 2023 13:01:48 +0200 Subject: [PATCH] forget to add new file --- src/dev/peerat/backend/MailConfiguration.java | 39 ++++++++++++++++ src/dev/peerat/backend/utils/Mail.java | 45 +++++++++++++++++++ 2 files changed, 84 insertions(+) create mode 100644 src/dev/peerat/backend/MailConfiguration.java create mode 100644 src/dev/peerat/backend/utils/Mail.java diff --git a/src/dev/peerat/backend/MailConfiguration.java b/src/dev/peerat/backend/MailConfiguration.java new file mode 100644 index 0000000..464e163 --- /dev/null +++ b/src/dev/peerat/backend/MailConfiguration.java @@ -0,0 +1,39 @@ +package dev.peerat.backend; + +public class MailConfiguration { + String username; + String password; + String smtpHost; + String smtpPort; + String fromAddress; + + public MailConfiguration(String initUsername, String initPassword, String initSmtpHost, String initSmtpPort, String initFromAddress) { + username = initUsername; + password = initPassword; + smtpHost = initSmtpHost; + smtpPort = initSmtpPort; + fromAddress = initFromAddress.isBlank() ? "cyberbottle@peerat.dev" : initFromAddress; + } + + public String getUsername() { + return username; + } + + public String getPassword() { + return password; + } + + public String getSmtpHost() { + return smtpHost; + } + + public String getSmtpPort() { + return smtpPort; + } + + public String getFromAddress() { + return fromAddress; + } + + +} diff --git a/src/dev/peerat/backend/utils/Mail.java b/src/dev/peerat/backend/utils/Mail.java new file mode 100644 index 0000000..7163038 --- /dev/null +++ b/src/dev/peerat/backend/utils/Mail.java @@ -0,0 +1,45 @@ +package dev.peerat.backend.utils; + +import java.util.Properties; + +import dev.peerat.backend.MailConfiguration; +import jakarta.mail.Message; +import jakarta.mail.MessagingException; +import jakarta.mail.PasswordAuthentication; +import jakarta.mail.Session; +import jakarta.mail.Transport; +import jakarta.mail.internet.InternetAddress; +import jakarta.mail.internet.MimeMessage; + + +public class Mail { + public static void send(String toAddress, String subject, String text, MailConfiguration mailConfiguration) { + + Properties props = new Properties(); + props.put("mail.smtp.starttls.enable", "true"); + props.put("mail.smtp.auth", "true"); + props.put("mail.smtp.host", mailConfiguration.getSmtpHost()); + props.put("mail.smtp.port", mailConfiguration.getSmtpPort()); + + Session session = Session.getInstance(props, + new jakarta.mail.Authenticator() { + protected PasswordAuthentication getPasswordAuthentication() { + return new PasswordAuthentication(mailConfiguration.getUsername(), mailConfiguration.getPassword()); + } + }); + + try { + + Message message = new MimeMessage(session); + message.setFrom(new InternetAddress(mailConfiguration.getFromAddress())); + message.setRecipients(Message.RecipientType.TO, + InternetAddress.parse(toAddress)); + message.setSubject(subject); + message.setText(text); + + Transport.send(message); + } catch (MessagingException e) { + throw new RuntimeException(e); + } + } +}