邮件发送工具
springBoot邮件发送工具
pom
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
</dependency>
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<String, Object> 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("<p style=\"margin:20;padding:0;font-size:20px;line-height:30px;color:#333;font-family:arial,sans-serif;font-weight:bold\">亲爱的{userName}:</p>")
.append("<p style=\"margin: 50px;padding:0;line-height:30px;font-size:14px;color:#333;font-family:'宋体',arial,sans-serif\">{context}</p>")
.append("<p style=\"margin:0;padding:0;font-size:12px;color:#333;font-family:'宋体',arial,sans-serif\">四川九通智路科技有限公司</p>")
.append("<p style=\"margin:0;padding:0;font-size:12px;color:#333;font-family:'宋体',arial,sans-serif\">Tel:028-86660296</p>")
.append("<p style=\"margin:0;padding:0;font-size:12px;color:#333;font-family:'宋体',arial,sans-serif\">Email: jiutong@jtsmartway.com</p>")
.append("<p style=\"margin:0;padding:0;font-size:12px;color:#333;font-family:'宋体',arial,sans-serif\">Addr:中国(四川)自由贸易试验区成都市高新区天府一街535号2幢10楼1002号</p>")
.append("<img src=\"https://s1.ax1x.com/2022/06/13/XRoF3t.jpg\" style=\"border:1px solid #dfdfdf;padding:5px;width: 150px;\">")
.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);
}
}
参考:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix