什么是JavaMailSender
JavaMailSender是Spring Framework中的一个接口,用于发送电子邮件。它是Spring对JavaMail API的封装,提供了更简单和更方便的方式来发送邮件。
JavaMailSender接口定义了一组发送邮件的方法,包括发送简单文本邮件、发送带附件的邮件、发送HTML格式的邮件等。它隐藏了底层JavaMail API的复杂性,使得在Spring应用中发送邮件变得更加容易。
在Spring Boot中,你可以通过依赖注入JavaMailSender来使用它。通过配置邮件服务器的相关信息,你可以使用JavaMailSender发送邮件。
JavaMailSender接口的常用实现类是JavaMailSenderImpl,它是基于JavaMail API实现的。除了JavaMailSenderImpl,Spring还提供了其他的实现类,例如MockMailSender用于测试目的。
使用JavaMailSender,你可以方便地发送邮件,设置收件人、发件人、主题、正文等信息,并可以附加文件、设置抄送、密送等功能。
首先引入依赖
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-mail</artifactId> </dependency>
然后配置文件
spring: mail: default-encoding: UTF-8 host: xxxxxx port: xxxxx username: xxxx邮箱 password: xxxx protocol: smtp
代码编写:
public void send(String content, List<String> filePaths) { MimeMessage mimeMessage = mailSender.createMimeMessage(); MimeMessageHelper helper; try { helper = new MimeMessageHelper(mimeMessage, true);\\true支持附件 helper.setFrom("你的发件人邮箱"); helper.setTo(rosters.split(",")); \\收件人邮箱,支持多个 helper.setText(msg, true); \\邮件内容 true为html格式 false为text格式 helper.setSubject("邮件主题"); helper.setSentDate(new Date()); //设置附件 addFile(filePaths, helper); mailSender.send(mimeMessage); } catch (Exception e) { } }
添加附件,我这边是远程读取文件,使用二进制流的方式
private void addFile(List<String> filePaths, MimeMessageHelper helper) throws Exception { int i = 1; for (String filePath : filePaths) { ByteArrayOutputStream os1 = new ByteArrayOutputStream(); RFileUtil.readFile(os1, filePath); ByteArrayDataSource byteArrayDataSource = new ByteArrayDataSource(os1.toByteArray(), "image/png"); helper.addAttachment("photo" + i++ + ".jpg", byteArrayDataSource); } }
如果是本地文件,则使用
helper.addAttachment("photo" + i++ + ".jpg",new File("xxxxxx"));
使用非常简单,有兴趣的可以试试.
谢谢大家的关注.
标签:JavaMailSender,helper,Spring,Boot,发送,new,邮件 From: https://www.cnblogs.com/wnhbx/p/18125651