提交 0b4823d0 编写于 作者: J johnniang

Refactor load mail configuration

上级 ff1836e9
......@@ -10,7 +10,7 @@ public enum EmailProperties implements PropertyEnum {
HOST("email_host", String.class, ""),
PROTOCOL("email_protocol", String.class, "SSL"),
PROTOCOL("email_protocol", String.class, "smtp"),
SSL_PORT("email_ssl_port", Integer.class, "465"),
......
package run.halo.app.service.impl;
import cn.hutool.core.text.StrBuilder;
import cn.hutool.core.util.StrUtil;
import freemarker.template.Template;
import io.github.biezhi.ome.OhMyEmail;
import lombok.extern.slf4j.Slf4j;
import org.springframework.context.ApplicationListener;
import org.springframework.stereotype.Service;
import org.springframework.ui.freemarker.FreeMarkerTemplateUtils;
import org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer;
import run.halo.app.event.options.OptionUpdatedEvent;
import run.halo.app.exception.EmailException;
import run.halo.app.model.properties.EmailProperties;
import run.halo.app.service.MailService;
......@@ -27,14 +24,12 @@ import java.util.Properties;
*/
@Slf4j
@Service
public class MailServiceImpl implements MailService {
public class MailServiceImpl implements MailService {
private final FreeMarkerConfigurer freeMarker;
private final OptionService optionService;
private boolean loaded = false;
public MailServiceImpl(FreeMarkerConfigurer freeMarker,
OptionService optionService) {
this.freeMarker = freeMarker;
......@@ -114,6 +109,7 @@ public class MailServiceImpl implements MailService {
String fromUsername = optionService.getByPropertyOfNonNull(EmailProperties.FROM_NAME).toString();
File file = new File(attachFilename);
try {
Template template = freeMarker.getConfiguration().getTemplate(templateName);
OhMyEmail.subject(subject)
......@@ -135,10 +131,12 @@ public class MailServiceImpl implements MailService {
private void loadConfig() {
// Get default properties
Properties defaultProperties = OhMyEmail.defaultConfig(log.isDebugEnabled());
// Set smtp host
defaultProperties.setProperty("mail.smtp.host", optionService.getByPropertyOfNonNull(EmailProperties.HOST).toString());
defaultProperties.setProperty("mail.smtp.ssl.enable", StrUtil.isEmpty(optionService.getByPropertyOfNonNull(EmailProperties.PROTOCOL).toString()) ? "false" : "true");
defaultProperties.setProperty("mail.smtp.port", StrUtil.isEmpty(optionService.getByPropertyOfNonNull(EmailProperties.SSL_PORT).toString()) ? "25" : "465");
defaultProperties.setProperty("mail.transport.protocol", optionService.getByPropertyOrDefault(EmailProperties.PROTOCOL, String.class, EmailProperties.PROTOCOL.defaultValue()));
defaultProperties.setProperty("mail.smtp.port", optionService.getByPropertyOrDefault(EmailProperties.SSL_PORT, String.class, EmailProperties.SSL_PORT.defaultValue()));
// Config email
OhMyEmail.config(defaultProperties,
optionService.getByPropertyOfNonNull(EmailProperties.USERNAME).toString(),
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册