邮件服务

package com.allianz.fileservice.service;

import com.allianz.fileservice.vo.EmailVO;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.mail.javamail.MimeMessageHelper;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Service;
import org.thymeleaf.ITemplateEngine;
import org.thymeleaf.context.Context;
import org.thymeleaf.context.IContext;

import javax.mail.MessagingException;
import javax.mail.internet.MimeMessage;
import java.util.Map;
import java.util.Set;

@Service
public class EmailService {

    private static Logger logger = LoggerFactory.getLogger(EmailService.class);

    @Autowired
    private JavaMailSender sender;

    @Autowired
    private ITemplateEngine engine;

    @Async
    public void sendEmail(String template, EmailVO email){
        // 获取参数
        IContext context = getContext(email.getParams());
        // 获取模板
        String content = engine.process(template,context);
        // 发送邮件
        MimeMessage message = sender.createMimeMessage();
        MimeMessageHelper helper = new MimeMessageHelper(message);
        try {
            helper.setTo(email.getUserEmailAddress());
            helper.setSubject(email.getSubject());
            helper.setFrom("su.mengxuan@allianz.com");
            helper.setText(content,true);
        } catch (MessagingException e) {
            logger.info("Mail Delivery Failed" + email.toString());
            e.printStackTrace();
        }
        sender.send(helper.getMimeMessage());
        logger.info("Mail Delivery Success" + email.getUserEmailAddress());
    }



    private IContext getContext(Map<String,Object> params) {

        Set<Map.Entry<String, Object>> entries = params.entrySet();
        Context context = new Context();
        for ( Map.Entry<String,Object> entry:entries) {
            context.setVariable(entry.getKey(),entry.getValue());
        }
        return context;
    }
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容