这里我使用的邮箱是Outlook邮箱:Outlook邮箱
登录邮箱,设置邮箱的POP和IMAP
#邮件发送
email-account : *********@@outlook.com (发送的邮箱账号)
email-password: ********* (邮箱密码,也有可能是密钥,qq就是密钥,看你用的是什么邮件)
email-host: smtp.office365.com (主机地址,这里我自己用的是outlook,接什么邮件就用该邮件方的主机地址)
email-port: 587 (端口)
/**
* 获取yml配置参数
*/
@Component
@Data
public class MailConfig {
@Value("${email-account}")
public String email;
@Value("${email-password}")
public String password;
@Value("${email-host}")
public String host;
@Value("${email-port}")
public String port;
}
@Slf4j
@Component
public class MailUtil {
@Resource
private MailConfig mailConfig;
/**
*
* @param toEmail 接收人邮箱号码
* @param code 发送的信息,这里是验证码
*/
public void sendMail(String toEmail, String code) {
try {
Properties props = new Properties();
// 发送服务器需要身份验证
props.setProperty("mail.smtp.auth", "true");
// 设置邮件服务器主机名
props.setProperty("mail.host", mailConfig.host);
props.setProperty("mail.smtp.port", mailConfig.port);
props.put("mail.smtp.starttls.enable", "true");
// 设置环境信息
Session session = Session.getInstance(props);
// 创建邮件对象
MimeMessage msg = new MimeMessage(session);
// 设置发件人
msg.setFrom(new InternetAddress(mailConfig.email));
// 设置收件人
msg.addRecipient(Message.RecipientType.TO, new InternetAddress(toEmail));
// 设置邮件主题
msg.setSubject("这里设置的是邮件的主题");
Multipart multipart = new MimeMultipart();
MimeBodyPart textPart = new MimeBodyPart();
//这里设置邮件发送的内容信息
textPart.setText("code:" + code ");
multipart.addBodyPart(textPart);
msg.setContent(multipart);
Transport transport = session.getTransport();
//连接邮件服务器
transport.connect(mailConfig.email, mailConfig.password);
transport.sendMessage(msg, new Address[]{new InternetAddress(toEmail)});
transport.close();
} catch (Exception e) {
log.error("发送邮件错误:" + e);
}
}
}
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
</dependency>
具体接入什么邮箱,将对应的yml参数进行修改就可以了