From 1ec096e1244b953b3837b6f213b81d7a47b0ad3a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20Gargalovi=C4=8D?= <xgargal@fi.muni.cz> Date: Sun, 19 Mar 2023 12:41:32 +0100 Subject: [PATCH] mail-module impl --- application/model/pom.xml | 7 +++++ application/module-mail/pom.xml | 15 ++++++++++ .../fuseri/modulemail/service/EmailDto.java | 15 ++++++++++ .../modulemail/service/MailControler.java | 28 +++++++++++++++++++ .../modulemail/service/MailService.java | 23 +++++++++++++++ .../src/main/resources/application.properties | 9 +++++- 6 files changed, 96 insertions(+), 1 deletion(-) create mode 100644 application/module-mail/src/main/java/org/fuseri/modulemail/service/EmailDto.java create mode 100644 application/module-mail/src/main/java/org/fuseri/modulemail/service/MailControler.java create mode 100644 application/module-mail/src/main/java/org/fuseri/modulemail/service/MailService.java diff --git a/application/model/pom.xml b/application/model/pom.xml index aa4f9b93..705682e3 100644 --- a/application/model/pom.xml +++ b/application/model/pom.xml @@ -17,5 +17,12 @@ <properties> <spring-boot.repackage.skip>true</spring-boot.repackage.skip> </properties> + <dependencies> + <dependency> + <groupId>org.ifinalframework.annotation</groupId> + <artifactId>final-annotation-web</artifactId> + <version>1.4.0</version> + </dependency> + </dependencies> </project> \ No newline at end of file diff --git a/application/module-mail/pom.xml b/application/module-mail/pom.xml index 4e729ff3..42f8c4f9 100644 --- a/application/module-mail/pom.xml +++ b/application/module-mail/pom.xml @@ -27,6 +27,21 @@ <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> + <dependency> + <groupId>org.springframework.boot</groupId> + <artifactId>spring-boot-starter-web</artifactId> + </dependency> + <dependency> + <groupId>org.springframework.boot</groupId> + <artifactId>spring-boot-starter-mail</artifactId> + <version>3.0.4</version> + </dependency> + +<!-- <dependency>--> +<!-- <groupId>javax.mail</groupId>--> +<!-- <artifactId>mail</artifactId>--> +<!-- <version>1.4.7</version>--> +<!-- </dependency>--> </dependencies> <build> diff --git a/application/module-mail/src/main/java/org/fuseri/modulemail/service/EmailDto.java b/application/module-mail/src/main/java/org/fuseri/modulemail/service/EmailDto.java new file mode 100644 index 00000000..7db3d98a --- /dev/null +++ b/application/module-mail/src/main/java/org/fuseri/modulemail/service/EmailDto.java @@ -0,0 +1,15 @@ +package org.fuseri.modulemail.service; + +public class EmailDto { + + String sender; + String receiver; + String content; + + public EmailDto(String sender, String receiver, String content) { + this.sender = sender; + this.receiver = receiver; + this.content = content; + } + +} diff --git a/application/module-mail/src/main/java/org/fuseri/modulemail/service/MailControler.java b/application/module-mail/src/main/java/org/fuseri/modulemail/service/MailControler.java new file mode 100644 index 00000000..87d7d61b --- /dev/null +++ b/application/module-mail/src/main/java/org/fuseri/modulemail/service/MailControler.java @@ -0,0 +1,28 @@ +package org.fuseri.modulemail.service; + + +import org.springframework.beans.factory.annotation.Autowired; +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; + +@RestController +@RequestMapping("/mail") +public class MailControler { + + private final MailService service; + + @Autowired + public MailControler(MailService service) { + this.service = service; + } + + @PostMapping() + public ResponseEntity sendMail(@RequestBody EmailDto emailDto) { + return ResponseEntity.ok(service.send(emailDto)); + } + + +} diff --git a/application/module-mail/src/main/java/org/fuseri/modulemail/service/MailService.java b/application/module-mail/src/main/java/org/fuseri/modulemail/service/MailService.java new file mode 100644 index 00000000..32e13bc6 --- /dev/null +++ b/application/module-mail/src/main/java/org/fuseri/modulemail/service/MailService.java @@ -0,0 +1,23 @@ +package org.fuseri.modulemail.service; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.mail.SimpleMailMessage; +import org.springframework.mail.javamail.JavaMailSender; +@Service +public class MailService { + + @Autowired + private JavaMailSender emailSender; + + public String send(EmailDto dto) { + var message = new SimpleMailMessage(); + message.setFrom(dto.sender); + message.setTo(dto.receiver); + message.setSubject("Sprachschul"); + message.setText(dto.content); + + emailSender.send(message); + return "Success, you have sent: " + dto.content; + } +} diff --git a/application/module-mail/src/main/resources/application.properties b/application/module-mail/src/main/resources/application.properties index 8b137891..fe4165e1 100644 --- a/application/module-mail/src/main/resources/application.properties +++ b/application/module-mail/src/main/resources/application.properties @@ -1 +1,8 @@ - +spring.mail.host=smtp.gmail.com +spring.mail.port=587 +# change the email to app dedicated mail +spring.mail.username=email@gmail.com +# set the mail app password for the dedicated email +spring.mail.password=password +spring.mail.properties.mail.smtp.auth=true +spring.mail.properties.mail.smtp.starttls.enable=true -- GitLab