feat: SMTP support configuration starttls (#1861)

* 为office365,icloud增添starttls支持

* 增添启用starttls的按钮
pull/1870/head
ntdgy 2022-04-20 14:16:10 +08:00 committed by GitHub
parent 6d1fcc73b4
commit 28810d103c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 13 additions and 0 deletions

View File

@ -2,6 +2,8 @@ package run.halo.app.mail;
import java.io.UnsupportedEncodingException; import java.io.UnsupportedEncodingException;
import java.util.Arrays; import java.util.Arrays;
import java.util.HashMap;
import java.util.Map;
import java.util.concurrent.ExecutorService; import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors; import java.util.concurrent.Executors;
import java.util.function.Consumer; import java.util.function.Consumer;
@ -211,6 +213,12 @@ public abstract class AbstractMailService implements MailService {
optionService.getByPropertyOrDefault(EmailProperties.PASSWORD, String.class)); optionService.getByPropertyOrDefault(EmailProperties.PASSWORD, String.class));
mailProperties.setProtocol( mailProperties.setProtocol(
optionService.getByPropertyOrDefault(EmailProperties.PROTOCOL, String.class)); optionService.getByPropertyOrDefault(EmailProperties.PROTOCOL, String.class));
if (optionService.getByPropertyOrDefault(EmailProperties.STARTTLS, Boolean.class)) {
Map<String, String> starttls = new HashMap<>();
starttls.put("mail.smtp.starttls.enable", "true");
starttls.put("mail.smtp.auth", "true");
mailProperties.setProperties(starttls);
}
this.cachedMailProperties = mailProperties; this.cachedMailProperties = mailProperties;
} }

View File

@ -18,6 +18,11 @@ public enum EmailProperties implements PropertyEnum {
*/ */
PROTOCOL("email_protocol", String.class, "smtp"), PROTOCOL("email_protocol", String.class, "smtp"),
/**
* Is starttls enabled
*/
STARTTLS("email_starttls", Boolean.class, "false"),
/** /**
* SSL port * SSL port
*/ */