方式一:
添加依赖
<dependency>
<groupId>com.sun.mail</groupId>
<artifactId>javax.mail</artifactId>
<version>1.6.2</version>
</dependency>
发送QQ邮件工具类
public class EmailUtil {
public static void send(String recipient, String subject, String content) {
Properties props = new Properties();
// 开启协议
props.setProperty("mail.transport.protocol", "smtp");
// 主机名
props.setProperty("mail.smtp.host", "smtp.qq.com");
// 是否开启权限控制
props.setProperty("mail.smtp.auth", "true");
// true表示在发送邮件时会在控制台上打印发送时的信息
props.setProperty("mail.debug", "true");
// Session表示程序到邮件服务器之间的一次会话
Session session = Session.getInstance(props);
// 创建邮件对象
Message msg = new MimeMessage(session);
try {
// 填写发送人的QQ邮箱地址
msg.setFrom(new InternetAddress("发送人QQ邮箱地址"));
// 收件人
msg.setRecipient(Message.RecipientType.TO, new InternetAddress(recipient));
// 邮件的主题内容
msg.setSubject(subject);
// 邮件的正文内容
msg.setText(content);
Transport tran = session.getTransport();
//此处不是QQ的密码,是开启POP3/SMTP时生成的authorization code
tran.connect("发送人QQ的", "POP3/SMTP授权码");
tran.sendMessage(msg, msg.getAllRecipients());
} catch (MessagingException e) {
e.printStackTrace();
}
}
/**
* 测试
**/
public static void main(String[] args) {
String subject = "来自***邮箱";
String content = "***";
EmailUtil.send("***@qq.com", subject, content);
}
}
方式二:使用hutool工具类
添加依赖
<dependency>
<groupId>com.sun.mail</groupId>
<artifactId>javax.mail</artifactId>
<version>1.6.2</version>
</dependency>
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>5.8.3</version>
</dependency>
创建工具类
import cn.hutool.extra.mail.MailAccount;
import cn.hutool.extra.mail.MailUtil;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
import java.util.List;
/**
* @author JngKang
* @date 2022-06-20 18:39
*/
@Component
public class EmailUtil {
/**
* 邮件服务器
*/
@Value("${email.host}")
private String host;
/**
* 邮件服务器端口,默认25
*/
@Value("${email.port:25}")
private Integer port;
/**
* 发送方邮箱地址
*/
@Value("${email.form}")
private String form;
/**
* 发送方邮箱账号
*/
@Value("${email.user}")
private String user;
/**
* 发送方邮箱密码
*/
@Value("${email.pwd}")
private String pwd;
/**
* @param mailTo 接收方邮箱列表
* @param subject 标题
* @param content 内容
* @param isHtml 是否转化为html格式
*/
public void send(List<String> mailTo, String subject, String content, boolean isHtml) {
MailAccount account = new MailAccount();
account.setHost(host);
account.setPort(port);
account.setAuth(true);
account.setFrom(form);
account.setUser(user);
account.setPass(pwd);
MailUtil.send(account, mailTo, subject, content, isHtml);
}
}
添加配置信息
email:
host: smtp.qq.com
port: 25
form: ***@qq.com
# 注:user是邮箱账号,不用带邮箱地址后缀,但是阿里云邮箱必须要带
user: ***
pwd: ******
测试
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit.jupiter.SpringExtension;
import javax.annotation.Resource;
import java.util.Collections;
@SpringBootTest
@ExtendWith(SpringExtension.class)
class EmailUtilTest {
@Resource
EmailUtil emailUtil;
@Test
void email() {
emailUtil.send(Collections.singletonList("***@outlook.com"), "test", "test", false);
}
}