diff --git a/src/main/java/stirling/software/SPDF/config/security/mail/EmailService.java b/src/main/java/stirling/software/SPDF/config/security/mail/EmailService.java index 1cbdfd970..8939fbab6 100644 --- a/src/main/java/stirling/software/SPDF/config/security/mail/EmailService.java +++ b/src/main/java/stirling/software/SPDF/config/security/mail/EmailService.java @@ -1,5 +1,6 @@ package stirling.software.SPDF.config.security.mail; +import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.mail.javamail.JavaMailSender; import org.springframework.mail.javamail.MimeMessageHelper; import org.springframework.scheduling.annotation.Async; @@ -21,6 +22,7 @@ import stirling.software.SPDF.model.api.Email; */ @Service @RequiredArgsConstructor +@ConditionalOnProperty(value = "mail.enabled", havingValue = "true", matchIfMissing = false) public class EmailService { private final JavaMailSender mailSender; diff --git a/src/main/java/stirling/software/SPDF/config/security/mail/MailConfig.java b/src/main/java/stirling/software/SPDF/config/security/mail/MailConfig.java index 71f148df1..68c2fe35d 100644 --- a/src/main/java/stirling/software/SPDF/config/security/mail/MailConfig.java +++ b/src/main/java/stirling/software/SPDF/config/security/mail/MailConfig.java @@ -2,6 +2,7 @@ package stirling.software.SPDF.config.security.mail; import java.util.Properties; +import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.mail.javamail.JavaMailSender; @@ -20,6 +21,7 @@ import stirling.software.SPDF.model.ApplicationProperties; @Configuration @Slf4j @AllArgsConstructor +@ConditionalOnProperty(value = "mail.enabled", havingValue = "true", matchIfMissing = false) public class MailConfig { private final ApplicationProperties applicationProperties; diff --git a/src/main/java/stirling/software/SPDF/controller/api/EmailController.java b/src/main/java/stirling/software/SPDF/controller/api/EmailController.java index df098459d..3b91368ef 100644 --- a/src/main/java/stirling/software/SPDF/controller/api/EmailController.java +++ b/src/main/java/stirling/software/SPDF/controller/api/EmailController.java @@ -1,5 +1,6 @@ package stirling.software.SPDF.controller.api; +import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.ModelAttribute; @@ -27,6 +28,7 @@ import stirling.software.SPDF.model.api.Email; @RequiredArgsConstructor @Slf4j @Tag(name = "General", description = "General APIs") +@ConditionalOnProperty(value = "mail.enabled", havingValue = "true", matchIfMissing = false) public class EmailController { private final EmailService emailService; @@ -39,9 +41,7 @@ public class EmailController { * @return ResponseEntity with success or error message. */ @PostMapping(consumes = "multipart/form-data", value = "/send-email") - public ResponseEntity sendEmailWithAttachment( - @Valid @ModelAttribute - Email email) { + public ResponseEntity sendEmailWithAttachment(@Valid @ModelAttribute Email email) { try { // Calls the service to send the email with attachment emailService.sendEmailWithAttachment(email); diff --git a/src/main/java/stirling/software/SPDF/model/ApplicationProperties.java b/src/main/java/stirling/software/SPDF/model/ApplicationProperties.java index de536a8c0..82a17ff2c 100644 --- a/src/main/java/stirling/software/SPDF/model/ApplicationProperties.java +++ b/src/main/java/stirling/software/SPDF/model/ApplicationProperties.java @@ -424,6 +424,7 @@ public class ApplicationProperties { @Data public static class Mail { + private boolean enabled; private String host; private int port; private String username; diff --git a/src/main/java/stirling/software/SPDF/model/api/Email.java b/src/main/java/stirling/software/SPDF/model/api/Email.java index 33e4856b9..aba359b2c 100644 --- a/src/main/java/stirling/software/SPDF/model/api/Email.java +++ b/src/main/java/stirling/software/SPDF/model/api/Email.java @@ -1,5 +1,6 @@ package stirling.software.SPDF.model.api; +import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.web.multipart.MultipartFile; import io.swagger.v3.oas.annotations.media.Schema; @@ -11,6 +12,7 @@ import lombok.NoArgsConstructor; @Data @NoArgsConstructor @EqualsAndHashCode +@ConditionalOnProperty(value = "mail.enabled", havingValue = "true", matchIfMissing = false) public class Email { @Schema( description = "The input file", diff --git a/src/main/resources/settings.yml.template b/src/main/resources/settings.yml.template index 669946bd5..201f875dd 100644 --- a/src/main/resources/settings.yml.template +++ b/src/main/resources/settings.yml.template @@ -77,6 +77,7 @@ premium: appId: '' mail: + enabled: true # set to 'true' to enable sending emails host: smtp.example.com # SMTP server hostname port: 587 # SMTP server port username: '' # SMTP server username