快捷搜索:  汽车  科技

springboot服务接口调用记录:Java技术 SpringBoot实现邮件发送功能

springboot服务接口调用记录:Java技术 SpringBoot实现邮件发送功能包含附件的邮件Gitee地址:https://gitee.com/hgm1989/springboot-email.git

springboot服务接口调用记录:Java技术 SpringBoot实现邮件发送功能(1)

邮件发送功能基本是每个完整业务系统要集成的功能之一,今天小编给大家介绍一下SpringBoot实现邮件发送功能,希望对大家能有所帮助!

今天主要给大家分享简单邮件发送、HTML邮件发送、包含附件的邮件发送三个例子,具体源码链接在文章末尾,有需要的朋友可以自己下载学习一下。

1、创建一个基本的SpringBoot项目,pom文件导入发送邮件的依赖

<!--邮件发送依赖包--> <dependency> <groupId>org.Springframework.boot</groupId> <artifactId>spring-boot-starter-mail</artifactId> </dependency> <!--freemarker制作Html邮件模板依赖包--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-freemarker</artifactId> </dependency> 2、application.yml 文件配置配置邮件发送信息

spring: mail: host: smtp.qq.com username: xxx@qq.com #发件人邮箱 password: xxxxx #授权码 protocol: smtp properties.mail.smtp.auth: true properties.mail.smtp.port: 465 #发件邮箱端口 properties.mail.display.sendmail: xiaoMing properties.mail.display.sendname: xiaoming properties.mail.smtp.starttls.enable: true properties.mail.smtp.starttls.required: true properties.mail.smtp.ssl.enable: true #是否启用ssl default-encoding: utf-8 #编码格式 freemarker: cache: false settings: classic_compatible: true suffix: .html charset: UTF-8 template-loader-path: classpath:/templates/ 3、创建IEmailService 接口文件,定义邮件发送的接口

package com.springboot.email.email.service; import Javax.mail.MessagingException; import java.util.List; public interface IEmailService { /** * 发送简单文本邮件 */ void sendSimpleMail(String receiveEmail String subject String content); /** * 发送HTML格式的邮件 */ void sendHtmlMail(String receiveEmail String subject String emailContent) throws MessagingException; /** * 发送包含附件的邮件 */ void sendAttachmentsMail(String receiveEmail String subject String emailContent List<String> filePathList) throws MessagingException; } 4、创建IEmailService接口的实现类EmailService.java 文件

package com.springboot.email.email.service.impl; import com.springboot.email.email.service.IEmailService; import org.springframework.beans.factory.annotation.Value; import org.springframework.core.io.FileSystemResource; import org.springframework.mail.SimpleMailMessage; import org.springframework.mail.javamail.JavaMailSender; import org.springframework.mail.javamail.MimeMessageHelper; import org.springframework.stereotype.Service; import javax.annotation.Resource; import javax.mail.MessagingException; import javax.mail.internet.MimeMessage; import java.io.File; import java.util.List; @Service public class EmailServiceImpl implements IEmailService { @Resource private JavaMailSender mailSender; @Value("${spring.mail.username}") private String fromEmail; /** * 发送简单文本邮件 */ public void sendSimpleMail(String receiveEmail String subject String content) { SimpleMailMessage message = new SimpleMailMessage(); message.setFrom(fromEmail); message.setTo(receiveEmail); message.setSubject(subject); message.setText(content); mailSender.send(message); } /** * 发送Html格式的邮件 */ public void sendhtmlMail(String receiveEmail String subject String emailContent) throws MessagingException { init(receiveEmail subject emailContent mailSender fromEmail); } public static void init(String receiveEmail String subject String emailContent JavaMailSender mailSender String fromEmail) throws MessagingException { MimeMessage message= mailSender.createMimeMessage(); MimeMessageHelper helper=new MimeMessageHelper(message true); helper.setFrom(fromEmail); helper.setTo(receiveEmail); helper.setSubject(subject); helper.setText(emailContent true); mailSender.send(message); } /** * 发送包含附件的邮件 */ public void sendAttachmentsMail(String receiveEmail String subject String emailContent List<String> filePathList) throws MessagingException { MimeMessage message = mailSender.createMimeMessage(); //带附件第二个参数true MimeMessageHelper helper = new MimeMessageHelper(message true); helper.setFrom(fromEmail); helper.setTo(receiveEmail); helper.setSubject(subject); helper.setText(emailContent true); //添加附件资源 for (String item : filePathList) { FileSystemResource file = new FileSystemResource(new File(item)); String fileName = item.substring(item.lastIndexOf(File.separator)); helper.addAttachment(fileName file); } //发送邮件 mailSender.send(message); } } 5、新建邮件发送模板 email.html

<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8"/> <title></title> <style> td { border: black 1px solid; } </style> </head> <body> <h1>工资条</h1> <table style="border: black 1px solid;width: 750px"> <thead> <td>序号</td> <td>姓名</td> <td>基本工资</td> <td>在职天数</td> <td>奖金</td> <td>社保</td> <td>个税</td> <td>实际工资</td> </thead> <tbody> <tr> <td>${salary.index}</td> <td>${salary.name}</td> <td>${salary.baseSalary}</td> <td>${salary.inDays}</td> <td>${salary.reward}</td> <td>${salary.socialSecurity}</td> <td>${salary.tax}</td> <td>${salary.actSalary}</td> </tr> </tbody> </table> </body> </html> 6、新建测试类,主要代码如下

/** * 测试简单文本文件 */ @Test public void EmailTest() { emailService.sendSimpleMail("hgmyz@outlook.com" "测试邮件" "springboot 邮件测试"); } @Test public void HtmlEmailTest() throws MessagingException { String receiveEmail = "hgmyz@outlook.com"; String subject = "Spring Boot 发送Html邮件测试"; String emailContent = "<h2>您好!</h2><p>这里是一封Spring Boot 发送的邮件,祝您天天开心!<img " "src='https://p3.toutiaoimg.com/origin/tos-cn-i-qvj2lq49k0/a43f0608912a4ecfa182084e397e4b81?from=pc' width='500' height='300' /></p>" "<a href='https://programmerblog.xyz' title='IT技术分享设社区' targer='_blank'>IT技术分享设社区</a>"; emailService.sendHtmlMail(receiveEmail subject emailContent); } @Test public void templateEmailTest() throws IOException TemplateException MessagingException { String receiveEmail = "hgmyz@outlook.com"; String subject = "Spring Boot 发送Templete邮件测试"; //添加动态数据,替换模板里面的占位符 SalaryVO salaryVO = new SalaryVO(1 "小明" 2 9000.00 350.06 280.05 350.00 7806.00); Template template = freeMarkerConfigurer.getConfiguration().getTemplate("email.html"); //将模板文件及数据渲染完成之后,转换为html字符串 Map<String Object> model = new HashMap<>(); model.put("salary" salaryVO); String templateHtml = FreeMarkerTemplateUtils.processTemplateIntoString(template model); emailService.sendHtmlMail(receiveEmail subject templateHtml); } @Test public void emailContailAttachmentTest() throws IOException TemplateException MessagingException { String receiveEmail = "hgmyz@outlook.com"; String subject = "Spring Boot 发送包含附件的邮件测试"; //添加动态数据,替换模板里面的占位符 SalaryVO salaryVO = new SalaryVO(1 "小王" 2 9000.00 350.06 280.05 350.00 7806.00); Template template = freeMarkerConfigurer.getConfiguration().getTemplate("email.html"); //将模板文件及数据渲染完成之后,转换为html字符串 Map<String Object> model = new HashMap<>(); model.put("salary" salaryVO); String templateHtml = FreeMarkerTemplateUtils.processTemplateIntoString(template model); List<String> fileList = new ArrayList<>(); fileList.add("F:\\邮件测试.docx"); fileList.add("F:\\5.jpg"); fileList.add("F:\\db.jpg"); emailService.sendAttachmentsMail(receiveEmail subject templateHtml fileList); } 7、效果截图

简单文版邮件

springboot服务接口调用记录:Java技术 SpringBoot实现邮件发送功能(2)

html文件

springboot服务接口调用记录:Java技术 SpringBoot实现邮件发送功能(3)

包含附件的邮件

springboot服务接口调用记录:Java技术 SpringBoot实现邮件发送功能(4)

Gitee地址:https://gitee.com/hgm1989/springboot-email.git

猜您喜欢: