1. 导入pom依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
</dependency>
2. 配置收件人、发件人
##端口号
server.port=8888
##这里根据自己的情况填写
##邮箱服务器地址
##QQ smtp.qq.com
##sina smtp.sina.cn
##aliyun smtp.aliyun.com
##163 smtp.163.com
spring.mail.host=smtp.163.com
# 邮箱用户名
spring.mail.username=yongge@163.com
# 邮箱授权码
spring.mail.password=授权码
# 编码格式
spring.mail.default-encoding=UTF-8
# 发送邮件地址
mail.fromMail.sender=${spring.mail.username}
# 接收邮件地址
mail.fromMail.receiver=yongge@qq.com
3. 获取邮箱授权码
4. 进行测试
@RestController
@Slf4j
public class MailController {
@Value("${mail.fromMail.sender}")
private String sender;
@Value("${mail.fromMail.receiver}")
private String receiver;
@Autowired
private JavaMailSender javaMailSender;
/**
* 发送文本邮件
*
* @return 结果
*/
@RequestMapping("/sendMail")
public String sendMail() {
SimpleMailMessage message = new SimpleMailMessage();
message.setFrom(sender);
message.setTo(receiver);
message.setSubject("寒咏哥");
message.setText("你好!");
try {
javaMailSender.send(message);
log.info("简单邮件已经发送。");
} catch (Exception e) {
log.error("发送简单邮件时发生异常!", e);
}
return "success";
}
/**
* 发送html邮件
*
* @return 结果
*/
@RequestMapping("/sendHtmlMail")
public String testHtmlMail() {
String content="<html>\n" +
"<body>\n" +
" <h3>Html邮件!</h3>\n" +
"</body>\n" +
"</html>";
MimeMessage message = javaMailSender.createMimeMessage();
try {
//true表示需要创建一个multipart message
MimeMessageHelper helper = new MimeMessageHelper(message, true);
helper.setFrom(sender);
helper.setTo(receiver);
helper.setSubject("html mail");
helper.setText(content, true);
javaMailSender.send(message);
log.info("html邮件发送成功");
} catch (MessagingException e) {
log.error("发送html邮件时发生异常!", e);
}
return "success";
}
/**
* 发送附件邮件
*
* @return 结果
*/
@RequestMapping("/sendFilesMail")
public String sendFilesMail() {
String filePath="/Users/yongge/Downloads/ai-file.sql";
MimeMessage message = javaMailSender.createMimeMessage();
try {
MimeMessageHelper helper = new MimeMessageHelper(message, true);
helper.setFrom(sender);
helper.setTo(receiver);
helper.setSubject("附件邮件");
helper.setText("这是一封带附件的邮件", true);
FileSystemResource file = new FileSystemResource(new File(filePath));
String fileName = filePath.substring(filePath.lastIndexOf(File.separator));
helper.addAttachment(fileName, file);
javaMailSender.send(message);
log.info("带附件的邮件已经发送。");
} catch (MessagingException e) {
log.error("发送带附件的邮件时发生异常!", e);
}
return "success";
}
/**
* 发送图片邮件
*
* @return 结果
*/
@RequestMapping("/sendInlineResourceMail")
public String sendInlineResourceMail() {
String id = "asdasds";
String content="<html><body>这是有图片的邮件:<img src=\'cid:" + id + "\' ></body></html>";
String imgPath = "/Users/yongge/Downloads/yongge.jpeg";
MimeMessage message = javaMailSender.createMimeMessage();
try {
MimeMessageHelper helper = new MimeMessageHelper(message, true);
helper.setFrom(sender);
helper.setTo(receiver);
helper.setSubject("这是有图片的邮件");
helper.setText(content, true);
FileSystemResource res = new FileSystemResource(new File(imgPath));
helper.addInline(id, res);
javaMailSender.send(message);
log.info("嵌入静态资源的邮件已经发送。");
} catch (MessagingException e) {
log.error("发送嵌入静态资源的邮件时发生异常!", e);
}
return "success";
}
}