问题描述
需要实现邮件发送的功能,对过程进行一下记录。
步骤
① 首先需要开启邮箱的smtp服务,现在很多邮箱默认关闭smtp,pop3,imap服务,需要登录邮箱后在设置中手动开启。
② 引入Jakarta Mail依赖包
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
</dependency>
③ 邮件信息对象
package com.changkong.util.email;
import com.sun.mail.util.MailSSLSocketFactory;
import java.security.GeneralSecurityException;
import java.util.List;
import java.util.Properties;
import lombok.Data;
@Data
public class MailSenderInfo {
// 发送邮件的服务器的IP和端口
private String mailServerHost;
private String mailServerPort = "465";
private boolean enableSSL;
private boolean enableTLS;
// 邮件发送者的地址
private String fromAddress;
// 邮件接收者的地址
private List<String> toAddressList;
// 登陆邮件发送服务器的用户名和密码
private String userName;
private String password;
// 是否需要身份验证
private boolean validate = false;
// 邮件主题
private String subject;
// 邮件的文本内容
private String content;
// 邮件附件的文件名
private List<String> attachFileNames;
/**
* 获得邮件会话属性
*/
public Properties getProperties() throws GeneralSecurityException {
Properties p = new Properties();
p.put("mail.smtp.host", this.mailServerHost);
p.put("mail.smtp.port", this.mailServerPort);
if (this.enableSSL) {
MailSSLSocketFactory sf = null;
sf = new MailSSLSocketFactory();
// 设置信任所有的主机
sf.s