diff --git a/src/main/java/run/halo/app/mail/AbstractMailService.java b/src/main/java/run/halo/app/mail/AbstractMailService.java index 0dd936a9c..b7569775f 100644 --- a/src/main/java/run/halo/app/mail/AbstractMailService.java +++ b/src/main/java/run/halo/app/mail/AbstractMailService.java @@ -2,6 +2,8 @@ package run.halo.app.mail; import java.io.UnsupportedEncodingException; import java.util.Arrays; +import java.util.HashMap; +import java.util.Map; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util.function.Consumer; @@ -211,6 +213,12 @@ public abstract class AbstractMailService implements MailService { optionService.getByPropertyOrDefault(EmailProperties.PASSWORD, String.class)); mailProperties.setProtocol( optionService.getByPropertyOrDefault(EmailProperties.PROTOCOL, String.class)); + if (optionService.getByPropertyOrDefault(EmailProperties.STARTTLS, Boolean.class)) { + Map starttls = new HashMap<>(); + starttls.put("mail.smtp.starttls.enable", "true"); + starttls.put("mail.smtp.auth", "true"); + mailProperties.setProperties(starttls); + } this.cachedMailProperties = mailProperties; } diff --git a/src/main/java/run/halo/app/model/properties/EmailProperties.java b/src/main/java/run/halo/app/model/properties/EmailProperties.java index acefba52e..e11918977 100644 --- a/src/main/java/run/halo/app/model/properties/EmailProperties.java +++ b/src/main/java/run/halo/app/model/properties/EmailProperties.java @@ -18,6 +18,11 @@ public enum EmailProperties implements PropertyEnum { */ PROTOCOL("email_protocol", String.class, "smtp"), + /** + * Is starttls enabled + */ + STARTTLS("email_starttls", Boolean.class, "false"), + /** * SSL port */