SpringBoot整合JavaMailSender(发送邮件)
一、概述
1、简介
- SMTP:简单邮件传输协议,用于发送电子邮件的传输协议
- POP3:用于接收电子邮件的标准协议
- IMAP:互联网消息协议,是POP3的替代协议
2、方法
SimpleMailMessage message = new SimpleMailMessage();
MimeMessage message = javaMailSender.createMimeMessage();
MimeMessageHelper helper = new MimeMessageHelper(message);
MimeMessage message = javaMailSender.createMimeMessage();
MimeMessageHelper helper = new MimeMessageHelper(message,true);
二、简单邮件发送
1、pom.xml
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
</dependency>
2、application.yml
spring:
mail:
host: smtp.qq.com
username: 发件人邮箱
password: 授权密码
3、Service接口类
package com.sgz.springboot.service;
public interface SendMailService {
void sendMail();
}
3、ServiceImpl接口实现类
package com.sgz.springboot.service.impl;
import com.sgz.springboot.service.SendMailService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.mail.SimpleMailMessage;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.stereotype.Service;
@Service
public class SendMailServiceImpl implements SendMailService {
@Autowired
private JavaMailSender javaMailSender;
private String from = "发件人邮箱";
private String to = "收件人邮箱";
private String subject = "测试邮件标题";
private String context = "测试邮件正文内容";
@Override
public void sendMail() {
SimpleMailMessage message = new SimpleMailMessage();
message.setFrom(from+"(发件人名称)");
message.setTo(to);
message.setSubject(subject);
message.setText(context);
javaMailSender.send(message);
System.out.println("发送成功");
}
}
4、测试类
package com.sgz.springboot;
import com.sgz.springboot.service.SendMailService;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
@SpringBootTest
class ApplicationTests {
@Autowired
private SendMailService sendMailService;
@Test
void contextLoads() {
sendMailService.sendMail();
}
}
三、复杂邮件发送
3、ServiceImpl接口实现类
package com.sgz.springboot.service.impl;
import com.sgz.springboot.service.SendMailService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.mail.SimpleMailMessage;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.mail.javamail.MimeMessageHelper;
import org.springframework.stereotype.Service;
import javax.mail.MessagingException;
import javax.mail.internet.MimeMessage;
@Service
public class SendMailServiceImpl implements SendMailService {
@Autowired
private JavaMailSender javaMailSender;
private String from = "发件人邮箱";
private String to = "收件人邮箱";
private String subject = "测试邮件标题";
private String context = "<img src='网络图片地址'/><a href='https://www.baidu.com'> 点开有惊喜 </a>";
@Override
public void sendMail() {
try {
MimeMessage message = javaMailSender.createMimeMessage();
MimeMessageHelper helper = new MimeMessageHelper(message);
helper.setFrom(from+"(发件人名称)");
helper.setTo(to);
helper.setSubject(subject);
helper.setText(context,true);
javaMailSender.send(message);
System.out.println("发送成功");
} catch (MessagingException e) {
e.printStackTrace();
}
}
}
四、附件邮件发送
3、ServiceImpl接口实现类
package com.sgz.springboot.service.impl;
import com.sgz.springboot.service.SendMailService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.mail.SimpleMailMessage;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.mail.javamail.MimeMessageHelper;
import org.springframework.stereotype.Service;
import javax.mail.MessagingException;
import javax.mail.internet.MimeMessage;
import java.io.File;
@Service
public class SendMailServiceImpl implements SendMailService {
@Autowired
private JavaMailSender javaMailSender;
private String from = "发件人邮箱";
private String to = "收件人邮箱";
private String subject = "测试邮件标题";
private String context = "测试邮件内容";
@Override
public void sendMail() {
try {
MimeMessage message = javaMailSender.createMimeMessage();
MimeMessageHelper helper = new MimeMessageHelper(message,true);
helper.setFrom(from+"(发件人名称)");
helper.setTo(to);
helper.setSubject(subject);
helper.setText(context);
File file1 = new File("D:\\Java\\SpringBoot\\daily_demo02\\day76_springboot_mail\\target\\day76_springboot_mail-0.0.1-SNAPSHOT.jar");
File file2 = new File("D:\\Java\\SpringBoot\\daily_demo02\\day76_springboot_mail\\src\\main\\resources\\8.png");
helper.addAttachment(file1.getName(), file1);
helper.addAttachment("最好看的壁纸.png", file2);
javaMailSender.send(message);
System.out.println("发送成功");
} catch (MessagingException e) {
e.printStackTrace();
}
}
}