springboot集成spring-boot-starter-mail邮件功能
Spring Boot是由Pivotal团队提供的全新框架,其设计⽬的是⽤来简化新Spring应⽤的初始搭建以及开发过程。该框架使⽤了特定的⽅式来进⾏配置,从⽽使开发⼈员不再需要定义样板化的配置。通过这种⽅式,Spring Boot致⼒于在蓬勃发展的快速应⽤开发领域(rapid application development)成为领导者。总之就是springboot 真⾹
相信使⽤过Spring的众多开发者都知道Spring提供了⾮常好⽤的JavaMailSender接⼝实现邮件发送。在Spring Boot的Starter模块中也为此提供了⾃动化配置。下⾯通过实例看看如何在Spring Boot中使⽤JavaMailSender发送邮件。
1.使⽤普通的maven项⽬需要加⼊spring-context-support依赖,因为JavaMailSenderImpl类在这个包下⾯:
2.使⽤springboot 需要引⼊
<!-- email -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
</dependency>
依赖引⼊之后在我们的配置⽂件中做如下配置
注意这⾥⾯的密码是我们邮箱的授权码不是登陆的密码
另外有上传到服务器中报错⽆法使⽤的⽐如阿⾥云腾讯云
以腾讯云为例可以申请去解封25端⼝百度很多⽅法。在这只提⼀下这个问题
在本博客只演⽰的发送邮件和附件
/**
* ⽆附件简单⽂本内容发送
* @param email 接收⽅email
* @param subject 邮件内容主题
* @param text 邮件内容
*/
public void simpleMailSend(String email,String subject,String text) {
//创建邮件内容
SimpleMailMessage message=new SimpleMailMessage();
message.setFrom(username);//这⾥指的是发送者的账号
message.setTo(email);
message.setSubject(subject);
message.setText(text);
//发送邮件
mailSender.send(message);
System.out.println("\033[32;1m"+"发送给 "+email+" 的邮件发送成功"+"\033[0m");
}
/**
* 发送带附件的邮件
*
* @param to 接受⼈
* @param subject 主题
* @param html 发送内容
* @param filePath 附件路径
* @throws MessagingException 异常
* @throws UnsupportedEncodingException 异常
*/
public void sendAttachmentMail(String to, String subject, String html, String filePath) throws MessagingException, UnsupportedEncodingException {
MimeMessage mimeMessage = ateMimeMessage();
// 设置utf-8或GBK编码,否则邮件会有乱码
MimeMessageHelper messageHelper = new MimeMessageHelper(mimeMessage, true, "UTF-8");
messageHelper.setFrom(username,emailName);
messageHelper.setTo(to);
messageHelper.setSubject(subject);
messageHelper.setText(html, true);
FileSystemResource file=new FileSystemResource(new File(filePath));
String fileName=filePath.substring(filePath.lastIndexOf(File.separator));
messageHelper.addAttachment(fileName,file);
mailSender.send(mimeMessage);
}
/**
* 发送html内容的邮件
* @param email
* @param subject
* @param text
*/
public void sendSimpleMailHtml(String email,String subject,String text) throws MessagingException {
MimeMessage mimeMessage = ateMimeMessage();
MimeMessageHelper helper = new MimeMessageHelper(mimeMessage, true);
helper.setFrom(username);
helper.setTo("demogogo@yeah");
helper.setSubject("主题:嵌⼊静态资源");
// 注意<img/>标签,src='cid:jpg','cid'是contentId的缩写,'jpg'是⼀个标记
springboot框架的作用helper.setText("<html><body><img src=\"cid:jpg\"></body></html>", true);
// 加载⽂件资源,作为附件
FileSystemResource file = new FileSystemResource(new File("C:\\Users\\吴超\\Pictures\\Camera Roll\\截图_20191016142536.png")); // 调⽤MimeMessageHelper的addInline⽅法替代成⽂件('jpg[标记]', file[⽂件])
helper.addInline("jpg", file);
// 发送邮件
mailSender.send(mimeMessage);
}
打开我们的邮箱⼩到⼿
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论