1.整合依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
</dependency>
2.项目配置(放入mail.properties中)
mail.host=smtp.qq.com
mail.username=<邮箱地址:**@**.com>
mail.password=<邮箱密码>//放入邮箱的授权码
mail.smtpAuth=true
mail.smtpStarttlsEnable=true
mail.smtpStarttlsRequired=true
mail.defaultEncoding=UTF-8
3.创建配置类
package com.example.mail.config;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.PropertySource;
import org.springframework.stereotype.Component;
@Component
@PropertySource("classpath:mail.properties")
@ConfigurationProperties(prefix = "mail")
public class MailConfig {
private String host;
private String username;
private String password;
private String smtpAuth;
private String smtpStarttlsEnable;
private String smtpStarttlsRequired;
private String defaultEncoding;
}
4.创建工具类
package com.example.mail.utils;
import com.example.mail.config.MailConfig;
import org.springframework.mail.SimpleMailMessage;
import org.springframework.mail.javamail.JavaMailSenderImpl;
import org.springframework.stereotype.Component;
import javax.annotation.Resource;
import java.util.Properties;
@Component
public class MailUtils {
@Resource
private MailConfig mailConfig;
public boolean sendMail(String to, String title, String content) {
try {
SimpleMailMessage simpleMailMessage = new SimpleMailMessage();
simpleMailMessage.setFrom(mailConfig.getUsername());
simpleMailMessage.setTo(to);
simpleMailMessage.setSubject(title);
simpleMailMessage.setText(content);
JavaMailSenderImpl javaMailSender = new JavaMailSenderImpl();
javaMailSender.setUsername(mailConfig.getUsername());
javaMailSender.setHost(mailConfig.getHost());
javaMailSender.setPassword(mailConfig.getPassword());
javaMailSender.setDefaultEncoding(mailConfig.getDefaultEncoding());
Properties properties = new Properties();
properties.setProperty("mail.smtp.auth", mailConfig.getSmtpAuth());
properties.setProperty("mail.smtp.starttls.enable", mailConfig.getSmtpStarttlsEnable());
properties.setProperty("mail.smtp.starttls.required", mailConfig.getSmtpStarttlsRequired());
javaMailSender.setJavaMailProperties(properties);
javaMailSender.send(simpleMailMessage);
return true;
} catch (Exception e) {
e.printStackTrace();
return false;
}
}
}
5.创建测试控制类
package com.example.mail.controller;
import com.example.mail.utils.MailUtils;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
@RestController
public class TestController {
@Resource
private MailUtils mailUtils;
@GetMapping("/")
public boolean test() {
String to = "**@**.**";
String title = "Test SpringBoot Mail";
String content = "测试内容";
return mailUtils.sendMail(to, title, content);
}
}