一个Java小白的学习之路 个人博客 youngljx.top
邮件发送
1.前提:
首先要申请开通POP3/SMTP服务或者IMAP/SMTP服务,SMTP是简单邮件传输协议,定义了邮件客户端和SMTP服务器之间,以及SMTP服务器和SMTP服务器之间的通信协议,而POP3是邮局协议,定义了邮件客户端和POP3服务器之间的通信规则,SMTP服务器是用来接受邮件的,POP3服务器是用户用来读取邮件的,IMAP协议是对POP3服务器的扩展功能更强。
登录邮箱 》 设置 》 账户 》 开启POP3/SMTP 保存授权码。
2.SpringBoot发送邮件
添加依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
</dependency>
application.properties基本信息配置
#qq邮箱配置
spring.mail.host=smtp.qq.com #发送邮件服务器
spring.mail.port=587 #端口号465或587
spring.mail.username= 发送者邮箱
spring.mail.password= 客户端授权码
spring.mail.default-encoding=UTF-8
spring.mail.properties.mail.smtp.socketFactory.class=javax.net.ssl.SSLSocket
spring.mail.properties.mail.debug=true
发送简单邮件
@Component
public class MailService {
@Autowired
JavaMailSender javaMailSender;
/**
* @Description: 发送简单邮件
* @Param: [from, to, date, subject, content]
* @return: void
*/
public void sendSimpleMail(String from, String to, Date date
, String subject, String content){
SimpleMailMessage msg = new SimpleMailMessage();
msg.setFrom(from);
msg.setTo(to);
msg.setSentDate(date);
msg.setSubject(subject);
msg.setText(content);
javaMailSender.send(msg);
}
}
//测试内容
@RunWith(SpringRunner.class)
@SpringBootTest
public class MailApplicationTests {
@Autowired
MailService mailService;
@Test
public void contextLoads() {
mailService.sendSimpleMail(
"xx@qq.com","xxx@qq.com"
,new Date(),"测试邮件主题","测试邮件内容");
}
}
发送带附件的邮件
/**
* @Description: 发送带附件的邮件
* @Param: [from, to, date, subject, content, file]
* @return: void
*/
public void sendAttachFileMail(String from, String to, Date date
, String subject, String content, File file){
try {
MimeMessage message = javaMailSender.createMimeMessage();
MimeMessageHelper helper = new MimeMessageHelper(message,true);
helper.