一、背景
检测项目运行状态,出现异常时,向项目负责人发送通知邮件。
二、采用技术
主要使用java的mail工具类和hutool工具包
三、具体实现
1、邮箱配置
小编这个采用的是QQ邮箱,以QQ邮箱为例,设置大同小异。
登录网页版的QQ邮箱后,点击设置
点击账户
找到相应的服务并开启,开启后会有对应授权码,后面代码实现会使用到,两种的授权码任选一种即可。
获取对应服务信息,用于设置
对应服务信息
2、引入对应的jar
<!-- hutool工具包 -->
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>4.3.2</version>
</dependency>
<!-- mail邮件工具 -->
<dependency>
<groupId>javax.mail</groupId>
<artifactId>mail</artifactId>
<version>1.4.7</version>
</dependency>
3、参数实体
@Data
public class MailInfo {
//接收邮箱集合
private List<String> mails;
//标题
private String title;
//内容
private String message;
}
4、实现工具类
@Slf4j
public static void sendMailToQQ(MailInfo mailInfo){
try {
log.info("=======进入QQ邮件发送方法=======");
MailAccount account = new MailAccount();
account.setHost("smtp.qq.com");
account.setPort(587);
account.setAuth(true);
account.setFrom("1332140120@qq.com");
account.setUser("1332140120@qq.com");
account.setPass("XXXXXXXXXXXX"); //邮箱设置获取到的授权码
MailUtil.send(account, CollUtil.newArrayList(mailInfo.getMails()),
mailInfo.getTitle(), mailInfo.getMessage(), false);
log.info("=======QQ邮件发送成功======="+JSONObject.toJSONString(mailInfo));
} catch (Exception e) {
log.error("=======QQ邮件发送失败======="+e.getMessage(),e);
}
}