邮件发送工具


springBoot邮件发送工具

pom


    org.springframework.boot
    spring-boot-starter-mail

yaml

spring:
  mail:
    host: smtp.126.com
    port: 25
    username: 邮箱登录账户
    password: 邮箱授权码
import cn.hutool.core.lang.Dict;
import cn.hutool.core.util.StrUtil;
import cn.hutool.extra.spring.SpringUtil;
import org.springframework.boot.autoconfigure.mail.MailProperties;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.mail.javamail.MimeMessageHelper;

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

/**
 * @version 1.0
 * @date 2022/6/13 17:02
 * @since : JDK 11
 */
public class MailUtils {

    private static final MailProperties MAIL_INFO = SpringUtil.getBean(MailProperties.class);

    /**
     * 发送富文本邮件
     *
     * @param sender     发送器
     * @param from       发送人
     * @param subject    发送主题
     * @param parameters 模板参数
     * @param template   邮件模板
     * @param to         收件人
     * @return
     */
    public static boolean send(JavaMailSender sender, String from, String subject, Map parameters, String template, String... to) {
        try {
            MimeMessage mimeMessage = sender.createMimeMessage();
            MimeMessageHelper helper = new MimeMessageHelper(mimeMessage);
            helper.setFrom(from);
            helper.setTo(to);
            helper.setSubject(subject);
            String format = StrUtil.format(template, parameters);
            helper.setText(format, true);
            sender.send(mimeMessage);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    private static final String EVENT_SEND_TEMPLATE = new StringBuffer()
            .append("

亲爱的{userName}:

") .append("

{context}

") .append("

四川九通智路科技有限公司

") .append("

Tel:028-86660296

") .append("

Email: jiutong@jtsmartway.com

") .append("

Addr:中国(四川)自由贸易试验区成都市高新区天府一街535号2幢10楼1002号

") .append("") .toString(); private static final String EVENT_SUBJECT = "设备告警"; /** * 事件发送 * * @param sender 发送器 * @param userName 模板参数:题头 * @param context 模板参数:邮件主要内容 * @param to 收件人 * @return */ public static boolean sendForEventMail(JavaMailSender sender, String userName, String context, String... to) { send(sender, MAIL_INFO.getUsername(), EVENT_SUBJECT, Dict.of("userName", userName, "context", context), EVENT_SEND_TEMPLATE, to); } }

参考:

SpringBoot如何发送邮件,以及邮件的异步和定时任务

图床地址