100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > SpringBoot整合Mail发送附件邮件

SpringBoot整合Mail发送附件邮件

时间:2022-10-14 19:24:31

相关推荐

SpringBoot整合Mail发送附件邮件

介绍

参考连接:spring-boot-demo

springboot整合Mail简单文本邮件

开始

pom

<parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.0.1.RELEASE</version></parent><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding><java.version>1.8</java.version><jasypt.version>2.1.1</jasypt.version></properties><dependencies><!-- Spring Boot 邮件依赖 --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-mail</artifactId></dependency><!--jasypt配置文件加解密--><dependency><groupId>com.github.ulisesbocchio</groupId><artifactId>jasypt-spring-boot-starter</artifactId><version>${jasypt.version}</version></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>cn.hutool</groupId><artifactId>hutool-all</artifactId><version>5.4.1</version></dependency><!-- Spring Boot 模板依赖 --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-thymeleaf</artifactId></dependency></dependencies><build><finalName>spring-boot-demo-email</finalName><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build>

application.yml

spring:mail:host: #SMTP服务器地址port: 465username: ***3457107 #登陆账号# 敏感数据时,可用jasypt加密,格式:ENC(加密字符串),算法:password: ENC(your encryptor code) #登陆密码(或授权码)#服务协议protocol: smtp# 连接失败,跳过错误test-connection: true# 编码集default-encoding: UTF-8properties:from: ***3457107@ #邮件发信人(即真实邮箱)to: ***7887868@ # 邮件接信人(为方便测试)# 设置是否需要认证mail.smtp.auth: true#mail.smtp.starttls.enable: truemail.smtp.starttls.required: true# sslmail.smtp.ssl.enable: trueservlet:multipart:max-file-size: 10MB #限制单个文件大小max-request-size: 50MB #限制请求总量# 为 jasypt 配置解密秘钥jasypt:encryptor:password: hikktn# 自定义算法,默认算法:PBEWithMD5AndDESivGeneratorClassname: org.jasypt.salt.RandomIVGenerator

MailService.java

public class MailService {/*** java邮件发送类*/@Autowiredprivate JavaMailSender mailSender;/*** 发件人邮箱*/@Value("${spring.mail.properties.from}")private String from;/*** 收件人邮箱*/@Value("${spring.mail.properties.to}")private String to;/*** 发送带附件的邮件** @param subject 邮件主题* @param content 邮件内容* @param filePath 附件地址* @param cc 抄送地址* @throws MessagingException 邮件发送异常*/@Overridepublic void sendAttachmentsMail(String subject, String content, String filePath, String... cc) throws MessagingException {// 创建模板消息类MimeMessage message = mailSender.createMimeMessage();// 创建模板消息附带信息,是否发送的邮件是富文本(附件,图片,html等)MimeMessageHelper helper = new MimeMessageHelper(message, true);// 设置发件人邮箱helper.setFrom(from);// 设置收件人邮箱helper.setTo(to);// 设置邮件标题helper.setSubject(subject);// 设置邮件主体内容, true 表示带有附件或htmlhelper.setText(content, true);// 抄送人不为空的场合if (ArrayUtil.isNotEmpty(cc)) {// 设置抄送人helper.setCc(cc);}// 创建系统文件资源FileSystemResource file = new FileSystemResource(new File(filePath));// File.separator:“\"// String fileName = filePath.substring(filePath.lastIndexOf(File.separator));String fileName = file.getFilename();// 添加邮件附件helper.addAttachment(fileName, file);// 发送消息mailSender.send(message);}}

上传的附件

存放目录:static\xkcoding.png

测试类

@RunWith(SpringRunner.class)@SpringBootTestpublic class MailServiceTest {@Autowiredprivate MailService mailService;/*** 测试附件邮件** @throws MessagingException 邮件异常*/@Testpublic void sendAttachmentsMail() throws MessagingException {URL resource = ResourceUtil.getResource("static/xkcoding.png");mailService.sendAttachmentsMail("这是一封带附件的邮件", "邮件中有附件,请注意查收!", resource.getPath());}}

结果

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。