com.hb0730.commons.mail.spring.service.impl.MailServiceImpl Maven / Gradle / Ivy
package com.hb0730.commons.mail.spring.service.impl;
import com.hb0730.commons.mail.spring.properties.MailProperties;
import com.hb0730.commons.mail.spring.service.AbstractMailService;
import freemarker.template.Template;
import org.springframework.ui.freemarker.FreeMarkerTemplateUtils;
import org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.Map;
/**
* springJavaMail实现
*
* @author bing_huang
* @since 2.0.0
*/
public class MailServiceImpl extends AbstractMailService {
private final FreeMarkerConfigurer freeMarker;
public MailServiceImpl(MailProperties properties, FreeMarkerConfigurer freeMarker) {
super(properties);
this.freeMarker = freeMarker;
}
@Override
public void sendTextMail(String to, String subject, String content) {
sendMailTemplate(true, messageHelper -> {
messageHelper.setSubject(subject);
messageHelper.setTo(to);
messageHelper.setText(content);
});
}
@Override
public void sendTemplateMail(String to, String subject, Map content, String templateName) {
sendMailTemplate(true, messageHelper -> {
// build message content with freemarker
Template template = freeMarker.getConfiguration().getTemplate(templateName);
String contentResult = FreeMarkerTemplateUtils.processTemplateIntoString(template, content);
messageHelper.setSubject(subject);
messageHelper.setTo(to);
messageHelper.setText(contentResult, true);
});
}
@Override
public void sendAttachMail(String to, String subject, Map content, String templateName, String attachFilePath) {
sendMailTemplate(true, messageHelper -> {
Template template = freeMarker.getConfiguration().getTemplate(templateName);
String contentResult = FreeMarkerTemplateUtils.processTemplateIntoString(template, content);
messageHelper.setSubject(subject);
messageHelper.setTo(to);
Path attachmentPath = Paths.get(attachFilePath);
messageHelper.addAttachment(attachmentPath.getFileName().toString(), attachmentPath.toFile());
messageHelper.setText(contentResult, true);
});
}
}
© 2015 - 2024 Weber Informatics LLC | Privacy Policy