公司需要完成线上数据预警,通过邮件通知到相关主要负责的同事,使用javamail实现发送邮件功能

在pom中引入相关依赖

<dependency>
<groupId>com.sun.mail</groupId>
<artifactId>javax.mail</artifactId>
<version>1.6.2</version>
</dependency>

工具类可以拷贝直接使用

主要工具类

/**
* @ClassName EmailUtils
* @Description 发送邮件
* @Author charles.yao
* @Date 2022/05/20/14:16
**/
public class EmailUtils {

private static final String userName="zhangsan@163.com";//发件人电子邮箱
private static final String password = "123456";//发件人密码
private static final String host="smtp.exmail.qq.com";//指定发送邮件的主机为
private static final String port="587";//端口
/**
* 发送邮箱
* @param emal 收件人邮箱
* @param message 内容
* @param title 邮件标题
*/
public static void sendEmail(String emal,String message,String title){

// 获取系统属性
Properties properties = System.getProperties();
// 设置邮箱端口
properties.setProperty("mail.smtp.port", port);
// 设置邮件服务器
properties.setProperty("mail.smtp.host", host);

// 设置邮件服务器
properties.setProperty("mail.smtp.host", host);

properties.put("mail.smtp.auth", "true");
// 获取默认session对象
Session session = Session.getInstance(properties,new Authenticator(){
public PasswordAuthentication getPasswordAuthentication()
{
return new PasswordAuthentication(userName, password); //发件人邮件用户名、授权码
}
});
//Session session = Session.getInstance(properties);
try{
// 创建默认的 MimeMessage 对象
MimeMessage messages = new MimeMessage(session);

// Set From: 头部头字段
messages.setFrom(new InternetAddress(userName));

// Set To: 头部头字段
messages.addRecipient(Message.RecipientType.TO,
new InternetAddress(emal));

// Set Subject: 头部头字段
messages.setSubject(title);

// 设置消息体
messages.setText(message);

// 发送消息
Transport.send(messages);
}catch (MessagingException mex) {
mex.printStackTrace();
}
}
}