diff --git a/pom.xml b/pom.xml
index dbaf653..0d03dbb 100644
--- a/pom.xml
+++ b/pom.xml
@@ -38,7 +38,10 @@
org.springframework.boot
spring-boot-starter-web
-
+
+ org.springframework.boot
+ spring-boot-starter-mail
+
mysql
mysql-connector-java
diff --git a/src/main/java/fr/organizee/controller/MailController.java b/src/main/java/fr/organizee/controller/MailController.java
new file mode 100644
index 0000000..ad07b51
--- /dev/null
+++ b/src/main/java/fr/organizee/controller/MailController.java
@@ -0,0 +1,40 @@
+package fr.organizee.controller;
+
+import fr.organizee.model.Mail;
+import fr.organizee.service.SendMailService;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.ResponseEntity;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.mail.MessagingException;
+
+@RestController
+@RequestMapping("/mail")
+public class MailController {
+ SendMailService service;
+
+ public MailController(SendMailService service) {
+ this.service = service;
+ }
+
+ @PostMapping("/send")
+ public ResponseEntity sendMail(@RequestBody Mail mail) {
+ service.sendMail(mail);
+ return new ResponseEntity<>("Email Sent successfully", HttpStatus.OK);
+ }
+
+ @PostMapping("/html")
+ public ResponseEntity sendMailHTML(@RequestBody Mail mail) throws MessagingException {
+ service.sendMailHTML(mail);
+ return new ResponseEntity<>("HTML mail sent successfully", HttpStatus.OK);
+ }
+
+ @PostMapping("/attachment")
+ public ResponseEntity sendAttachmentEmail(@RequestBody Mail mail) throws MessagingException {
+ service.sendMailWithAttachments(mail);
+ return new ResponseEntity<>("Attachment mail sent successfully", HttpStatus.OK);
+ }
+}
\ No newline at end of file
diff --git a/src/main/java/fr/organizee/model/Mail.java b/src/main/java/fr/organizee/model/Mail.java
new file mode 100644
index 0000000..cbd551b
--- /dev/null
+++ b/src/main/java/fr/organizee/model/Mail.java
@@ -0,0 +1,41 @@
+package fr.organizee.model;
+
+public class Mail {
+ private String recipient;
+ private String subject;
+ private String message;
+
+ public Mail() {
+ }
+
+ public Mail(String recipient, String subject, String message) {
+ this.recipient = recipient;
+ this.subject = subject;
+ this.message = message;
+ }
+
+ public String getRecipient() {
+ return recipient;
+ }
+
+ public void setRecipient(String recipient) {
+ this.recipient = recipient;
+ }
+
+ public String getSubject() {
+ return subject;
+ }
+
+ public void setSubject(String subject) {
+ this.subject = subject;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+}
+
diff --git a/src/main/java/fr/organizee/service/SendMailService.java b/src/main/java/fr/organizee/service/SendMailService.java
new file mode 100644
index 0000000..9437b10
--- /dev/null
+++ b/src/main/java/fr/organizee/service/SendMailService.java
@@ -0,0 +1,15 @@
+package fr.organizee.service;
+
+import fr.organizee.model.Mail;
+
+import javax.mail.MessagingException;
+
+public interface SendMailService {
+ void sendMail(Mail mail);
+
+ void sendMailHTML(Mail mail) throws MessagingException;
+
+ void sendMailWithAttachments(Mail mail) throws MessagingException;
+}
+
+
diff --git a/src/main/java/fr/organizee/service/SendMailServiceImpl.java b/src/main/java/fr/organizee/service/SendMailServiceImpl.java
new file mode 100644
index 0000000..c77f675
--- /dev/null
+++ b/src/main/java/fr/organizee/service/SendMailServiceImpl.java
@@ -0,0 +1,68 @@
+package fr.organizee.service;
+
+
+import fr.organizee.model.Mail;
+import org.springframework.core.io.ClassPathResource;
+import org.springframework.mail.SimpleMailMessage;
+import org.springframework.mail.javamail.JavaMailSender;
+import org.springframework.mail.javamail.MimeMessageHelper;
+import org.springframework.stereotype.Service;
+
+import javax.mail.MessagingException;
+import javax.mail.internet.MimeMessage;
+
+@Service
+public class SendMailServiceImpl implements SendMailService {
+ private final JavaMailSender javaMailSender;
+
+ public SendMailServiceImpl(JavaMailSender javaMailSender) {
+ this.javaMailSender = javaMailSender;
+ }
+
+ @Override
+ public void sendMail(Mail mail) {
+
+ SimpleMailMessage msg = new SimpleMailMessage();
+ msg.setTo(mail.getRecipient(), mail.getRecipient());
+
+ msg.setSubject(mail.getSubject());
+ msg.setText(mail.getMessage());
+
+ javaMailSender.send(msg);
+ }
+
+ @Override
+ public void sendMailHTML(Mail mail) throws MessagingException {
+ MimeMessage msg = javaMailSender.createMimeMessage();
+
+ MimeMessageHelper helper = new MimeMessageHelper(msg, true, "utf-8");
+
+ helper.setTo(mail.getRecipient());
+
+ helper.setSubject(mail.getSubject());
+
+ String htmlMsg = "Im testing send a HTML email
"
+ +"";
+
+ msg.setContent(htmlMsg, "text/html");
+
+ javaMailSender.send(msg);
+ }
+
+ @Override
+ public void sendMailWithAttachments(Mail mail) throws MessagingException {
+ MimeMessage msg = javaMailSender.createMimeMessage();
+
+ MimeMessageHelper helper = new MimeMessageHelper(msg, true);
+
+ helper.setTo("to_@email");
+
+ helper.setSubject("Testing from Spring Boot");
+
+ helper.setText("Find the attached image", true);
+
+ helper.addAttachment("hero.jpg", new ClassPathResource("hero.jpg"));
+
+ javaMailSender.send(msg);
+ }
+}
\ No newline at end of file