首先引入Maven包:
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-mail</artifactId></dependency>
这里以QQ邮箱为例,要开通smtp的服务,这里还有要注意的。
尽量不要用刚刚注册的邮箱,不然会被供应商退回的。
application.properties如下:
spring.mail.host=spring.mail.username=xxxxxxxxx@spring.mail.password=xxxxxxxxxspring.mail.default-encoding=utf-8
发送代码如下:
@Servicepublic class MailService {@AutowiredJavaMailSender javaMailSender;public void sendTest(){//建立邮件消息SimpleMailMessage mainMessage = new SimpleMailMessage();//发送者mainMessage.setFrom("和spring.mail.username一样的");//接收者mainMessage.setTo("目标邮箱");//发送的标题mainMessage.setSubject("这是您需要的文件");//发送的内容mainMessage.setText("请看附件");javaMailSender.send(mainMessage);}public void sendFileTest(ResourcesInfoVo resourcesInfo) throws MessagingException, IOException {MimeMessage mimeMessage = javaMailSender.createMimeMessage();MimeMessageHelper helper = new MimeMessageHelper(mimeMessage,true);helper.setSubject("这是您需要的文件");//发送者helper.setFrom("和spring.mail.username一样的");//接收者helper.setTo("目标邮箱");helper.setSentDate(new Date());helper.setText("需要的文件在附件中,欢迎下次继续使用本系统。");InputStream inputStream = new ByteArrayInputStream(resourcesInfo.getContent());helper.addAttachment(resourcesInfo.getFileName(), new ByteArrayResource(IOUtils.toByteArray(inputStream)));javaMailSender.send(mimeMessage);}}
这里要注意的,不同供应商的邮箱,发送附件和邮件数是有限的。这个要注意!