springboot发送邮件功能怎么实现
springboot发送邮件功能怎么实现
这篇文章主要介绍“springboot发送邮件功能怎么实现”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“springboot发送邮件功能怎么实现”文章能帮助大家解决问题。
发邮件是一个很常见的功能,在java中实现需要依靠JavaMailSender这个接口。在springboot项目中需要引入名为 spring-boot-starter-mail 的依赖,如果对邮件的格式有要求的话可以引入可以操作html文件的 spring-boot-starter-thymeleaf 依赖。
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-mail</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-thymeleaf</artifactId></dependency>
和其他自动化配置模块一样,在完成了依赖引入之后,还需要在application.properties
中配置相应的属性值,否则运行方法会一直报空指针。
一、新建一个springboot项目。
1、打开idea,点击左上角工具栏file按钮 ,新建一个boot项目
2.点击next ,选择默认的依赖,常见的有数据库连接,web等
3、点击finsh,等待boot项目目录等生成。此时的目录是不全的需要自己新加java以及resources文件夹。右键项目选择
进行增加操作。
4、然后打开pom文件,引入依赖。
5、打开配置文件,写上对应的参数,
到此项目建成,开始写测试类。
二、发送邮件
1、建一个util类,写一个实现发送逻辑的业务类,没什么要写工具类,因为我想发送邮件的时候可以实现种格式,带附件带html样式以及可以异步操作的邮件,尤其异步大家都知道发邮件是很耗时的。
2、补一个异步调用的写法:
*需要异步的方法加@Async
*需要在启动类上加开启异步的方法,@EnableAsync
*注意可能应该是因为aop代理的缘故,被调用方法 和 调用处的代码都处在同一个类的话,只是相当于本类调用,并没有使用代理类 从而@Async并没有产生效果,就是在一个工具类。
3、代码 :带有附件的邮件
@TestpublicvoidsendAttachmentsMail(){Contextcontext=newContext();context.setVariable("agencyName","11");context.setVariable("busTypeName","22");context.setVariable("busAllowance",33);StringemailContent=templateEngine.process("emailTeplate",context);try{emailService.sendAttachmentsMail(newString[]{"xxx.com"},"测试提示",emailContent);}catch(Exceptione){e.printStackTrace();}System.out.println("sendmailsuccess!,pleasewaitafewmintens");}
/***fujian*@throwsException*/@AsyncpublicvoidsendAttachmentsMail(String[]to,Stringsubject,Stringcontnet)throwsException{MimeMessagemimeMessage=mailSender.createMimeMessage();MimeMessageHelperhelper=newMimeMessageHelper(mimeMessage,true);helper.setFrom("xxx.com");helper.setTo(to);helper.setSubject(subject);helper.setText(contnet,true);PathpicturePath=Paths.get("E:WorkFilesestBill","test.png");byte[]bytes=Files.readAllBytes(picturePath);helper.addAttachment("附件-1.jpg",picturePath.toFile());mailSender.send(mimeMessage);}
邮件发送成功
关于“springboot发送邮件功能怎么实现”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注恰卡编程网行业资讯频道,小编每天都会为大家更新不同的知识点。
推荐阅读
-
vue动态添加删除输入框(springboot vue怎么让数据库显示出来)
springbootvue怎么让数据库显示出来?一般情况下是前端调阅后端接口,来获取到数据库的数据,后端哪里会把数据库的数据整理...
-
springboot实现基于aop的切面日志
本文实例为大家分享了springboot实现基于aop的切面日志的具体代码,供大家参考,具体内容如下通过aop的切面方式实现日志...
-
SpringBoot定时任务功能怎么实现
-
SpringBoot中的@Import注解怎么使用
-
SpringBoot整合Lombok及常见问题怎么解决
-
springboot图片验证码功能模块怎么实现
-
Springboot+SpringSecurity怎么实现图片验证码登录
-
SpringBoot注解的知识点有哪些
SpringBoot注解的知识点有哪些这篇“SpringBoot注...
-
SpringBoot2.x中management.security.enabled=false无效怎么解决
-
springboot怎么禁用某项健康检查
springboot怎么禁用某项健康检查今天小编给大家分享一下sp...