中国邮箱网讯 1月6日消息 邮件在日常工作中有很多场景需求,监控提醒、告警信息等。现在用springboot开发一个定时发送邮件的微服务,来满足工作需求。
boot项目,引入 mail starter,
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
</dependency>
mail 工具类
常用的邮件实例有SimpleMailMessage和MimeMailMessage,这里我们以SimpleMailMessage为例,MimeMailMessage功能更丰富,大家可以自己去探讨。
写了一个工具类,供参考,其中setTo、setCc、setBcc方法都是用的String...的方法,支持传入多个收件人、抄送人。
@Component
public class EmailTool {
protected static final Logger logger = LoggerFactory.getLogger(EmailTool.class);
public static final String ZSZT = "";
@Autowired
private JavaMailSender mailSender;
public void sendEmail(Map<String, String> map){
String to = map.get("E_TO");
String cc = map.get("E_CC");
String bcc = map.get("E_BCC");
String subject = map.get("E_SUBJECT");
String text = map.get("E_CONTENT");
if(to!=null){
try {
SimpleMailMessage message = new SimpleMailMessage();
message.setFrom(ZSZT);
message.setTo(to.split(","));
if(cc!=null){
message.setCc(cc.split(","));
}
if(bcc!=null){
message.setBcc(bcc.split(","));
}
message.setSubject(subject);
message.setText(text);
mailSender.send(message);
} catch (Exception e){
logger.error("EmailTool ---> sendEmail() --- error");
e.printStackTrace();
}
} else {
logger.warn("EmailTool sendEmail() -- to == null");
}
}
}
后续和定时
工具类调试通过后,需要外部的map参数输入,这就根据自己的具体业务逻辑输入就可以了。
定时任务的话可参考SpringBoot之定时任务和Cron表达式配置,首先引入 spring-boot-starter-quartz 依赖,然后按照cron表达式配置job就可以了。