mirror of https://github.com/halo-dev/halo
Refactor load mail configuration
parent
ff1836e978
commit
0b4823d015
|
@ -10,7 +10,7 @@ public enum EmailProperties implements PropertyEnum {
|
||||||
|
|
||||||
HOST("email_host", String.class, ""),
|
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"),
|
SSL_PORT("email_ssl_port", Integer.class, "465"),
|
||||||
|
|
||||||
|
|
|
@ -1,15 +1,12 @@
|
||||||
package run.halo.app.service.impl;
|
package run.halo.app.service.impl;
|
||||||
|
|
||||||
import cn.hutool.core.text.StrBuilder;
|
import cn.hutool.core.text.StrBuilder;
|
||||||
import cn.hutool.core.util.StrUtil;
|
|
||||||
import freemarker.template.Template;
|
import freemarker.template.Template;
|
||||||
import io.github.biezhi.ome.OhMyEmail;
|
import io.github.biezhi.ome.OhMyEmail;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.context.ApplicationListener;
|
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.ui.freemarker.FreeMarkerTemplateUtils;
|
import org.springframework.ui.freemarker.FreeMarkerTemplateUtils;
|
||||||
import org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer;
|
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.exception.EmailException;
|
||||||
import run.halo.app.model.properties.EmailProperties;
|
import run.halo.app.model.properties.EmailProperties;
|
||||||
import run.halo.app.service.MailService;
|
import run.halo.app.service.MailService;
|
||||||
|
@ -27,14 +24,12 @@ import java.util.Properties;
|
||||||
*/
|
*/
|
||||||
@Slf4j
|
@Slf4j
|
||||||
@Service
|
@Service
|
||||||
public class MailServiceImpl implements MailService {
|
public class MailServiceImpl implements MailService {
|
||||||
|
|
||||||
private final FreeMarkerConfigurer freeMarker;
|
private final FreeMarkerConfigurer freeMarker;
|
||||||
|
|
||||||
private final OptionService optionService;
|
private final OptionService optionService;
|
||||||
|
|
||||||
private boolean loaded = false;
|
|
||||||
|
|
||||||
public MailServiceImpl(FreeMarkerConfigurer freeMarker,
|
public MailServiceImpl(FreeMarkerConfigurer freeMarker,
|
||||||
OptionService optionService) {
|
OptionService optionService) {
|
||||||
this.freeMarker = freeMarker;
|
this.freeMarker = freeMarker;
|
||||||
|
@ -114,6 +109,7 @@ public class MailServiceImpl implements MailService {
|
||||||
String fromUsername = optionService.getByPropertyOfNonNull(EmailProperties.FROM_NAME).toString();
|
String fromUsername = optionService.getByPropertyOfNonNull(EmailProperties.FROM_NAME).toString();
|
||||||
|
|
||||||
File file = new File(attachFilename);
|
File file = new File(attachFilename);
|
||||||
|
|
||||||
try {
|
try {
|
||||||
Template template = freeMarker.getConfiguration().getTemplate(templateName);
|
Template template = freeMarker.getConfiguration().getTemplate(templateName);
|
||||||
OhMyEmail.subject(subject)
|
OhMyEmail.subject(subject)
|
||||||
|
@ -135,10 +131,12 @@ public class MailServiceImpl implements MailService {
|
||||||
private void loadConfig() {
|
private void loadConfig() {
|
||||||
// Get default properties
|
// Get default properties
|
||||||
Properties defaultProperties = OhMyEmail.defaultConfig(log.isDebugEnabled());
|
Properties defaultProperties = OhMyEmail.defaultConfig(log.isDebugEnabled());
|
||||||
|
|
||||||
// Set smtp host
|
// Set smtp host
|
||||||
defaultProperties.setProperty("mail.smtp.host", optionService.getByPropertyOfNonNull(EmailProperties.HOST).toString());
|
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.transport.protocol", optionService.getByPropertyOrDefault(EmailProperties.PROTOCOL, String.class, EmailProperties.PROTOCOL.defaultValue()));
|
||||||
defaultProperties.setProperty("mail.smtp.port", StrUtil.isEmpty(optionService.getByPropertyOfNonNull(EmailProperties.SSL_PORT).toString()) ? "25" : "465");
|
defaultProperties.setProperty("mail.smtp.port", optionService.getByPropertyOrDefault(EmailProperties.SSL_PORT, String.class, EmailProperties.SSL_PORT.defaultValue()));
|
||||||
|
|
||||||
// Config email
|
// Config email
|
||||||
OhMyEmail.config(defaultProperties,
|
OhMyEmail.config(defaultProperties,
|
||||||
optionService.getByPropertyOfNonNull(EmailProperties.USERNAME).toString(),
|
optionService.getByPropertyOfNonNull(EmailProperties.USERNAME).toString(),
|
||||||
|
|
Loading…
Reference in New Issue