diff --git a/.classpath b/.classpath
index 9a18879..7b8e2a6 100644
--- a/.classpath
+++ b/.classpath
@@ -18,5 +18,6 @@
+
diff --git a/jakarta.mail-api-2.1.2.jar b/jakarta.mail-api-2.1.2.jar
new file mode 100644
index 0000000..98362f6
Binary files /dev/null and b/jakarta.mail-api-2.1.2.jar differ
diff --git a/src/dev/peerat/backend/Configuration.java b/src/dev/peerat/backend/Configuration.java
index fcad750..8e05047 100644
--- a/src/dev/peerat/backend/Configuration.java
+++ b/src/dev/peerat/backend/Configuration.java
@@ -35,7 +35,7 @@ public class Configuration {
private String mailUsername;
private String mailPassword;
private String mailSmtpHost;
- private String mailSmptPort;
+ private int mailSmptPort;
private String mailFromAddress;
private File file;
diff --git a/src/dev/peerat/backend/Main.java b/src/dev/peerat/backend/Main.java
index 5ba7449..2f4e163 100644
--- a/src/dev/peerat/backend/Main.java
+++ b/src/dev/peerat/backend/Main.java
@@ -27,6 +27,7 @@ import dev.peerat.backend.routes.groups.GroupCreate;
import dev.peerat.backend.routes.groups.GroupJoin;
import dev.peerat.backend.routes.groups.GroupList;
import dev.peerat.backend.routes.groups.GroupQuit;
+import dev.peerat.backend.utils.Mail;
import dev.peerat.framework.Context;
import dev.peerat.framework.HttpReader;
import dev.peerat.framework.HttpWriter;
@@ -41,6 +42,7 @@ public class Main{
Configuration config = new Configuration("config.txt");
config.load();
+ config.getMail().send("goerfra@peerat.dev", "Super Test", "A l'abordage !!!");;
Class.forName("com.mysql.cj.jdbc.Driver");
DatabaseRepository repo = new DatabaseRepository(config);
diff --git a/src/dev/peerat/backend/utils/Mail.java b/src/dev/peerat/backend/utils/Mail.java
index 9323417..e789fb1 100644
--- a/src/dev/peerat/backend/utils/Mail.java
+++ b/src/dev/peerat/backend/utils/Mail.java
@@ -1,9 +1,14 @@
package dev.peerat.backend.utils;
+import java.util.Date;
import java.util.Properties;
+import org.simplejavamail.email.*;
+import org.simplejavamail.mailer.MailerBuilder;
+import org.simplejavamail.mailer.internal.MailerRegularBuilderImpl;
+
+import jakarta.mail.Authenticator;
import jakarta.mail.Message;
-import jakarta.mail.MessagingException;
import jakarta.mail.PasswordAuthentication;
import jakarta.mail.Session;
import jakarta.mail.Transport;
@@ -15,37 +20,42 @@ public class Mail {
private Session session;
private String fromAddress;
- public Mail(String initUsername, String initPassword, String initSmtpHost, String initSmtpPort, String initFromAddress) {
+ public Mail(String initUsername, String initPassword, String initSmtpHost, int initSmtpPort, String initFromAddress) {
Properties props = new Properties();
- props.put("mail.smtp.starttls.enable", "true");
- props.put("mail.smtp.auth", "true");
- props.put("mail.smtp.host", initSmtpHost);
- props.put("mail.smtp.port", initSmtpPort);
-
- session = Session.getInstance(props,
- new jakarta.mail.Authenticator() {
- protected PasswordAuthentication getPasswordAuthentication() {
- return new PasswordAuthentication(initUsername, initPassword);
- }
- });
+ props.put("mail.smtp.host", initSmtpHost);
+ props.put("mail.smtp.port", initSmtpPort);
+ props.put("mail.smtp.auth", "true");
+ props.put("mail.smtp.starttls.enable", "true");
-
- fromAddress = initFromAddress.isBlank() ? "cyberbottle@peerat.dev" : initFromAddress;
+ Authenticator auth = new Authenticator() {
+ //override the getPasswordAuthentication method
+ protected PasswordAuthentication getPasswordAuthentication() {
+ return new PasswordAuthentication(initUsername, initPassword);
+ }
+ };
+ session = Session.getInstance(props, auth);
}
public void send(String toAddress, String subject, String text) {
- try {
+ try
+ {
+ MimeMessage msg = new MimeMessage(session);
+ //set message headers
+ msg.addHeader("Content-type", "text/HTML; charset=UTF-8");
+ msg.addHeader("format", "flowed");
+ msg.addHeader("Content-Transfer-Encoding", "8bit");
- Message message = new MimeMessage(session);
- message.setFrom(new InternetAddress(fromAddress));
- message.setRecipients(Message.RecipientType.TO,
- InternetAddress.parse(toAddress));
- message.setSubject(subject);
- message.setText(text);
+ msg.setFrom(new InternetAddress("no_reply@example.com", "NoReply-JD"));
+ msg.setReplyTo(InternetAddress.parse("no_reply@example.com", false));
+ msg.setSubject(subject, "UTF-8");
+ msg.setText(text, "UTF-8");
+ msg.setSentDate(new Date());
- Transport.send(message);
- } catch (MessagingException e) {
- throw new RuntimeException(e);
- }
+ msg.setRecipients(Message.RecipientType.TO, InternetAddress.parse(toAddress, false));
+ Transport.send(msg);
+ }
+ catch (Exception e) {
+ e.printStackTrace();
+ }
}
}