赞
踩
在学习过程中,竟然发现springboot可以发送邮件!!于是记录下来,方便以后翻阅!
首先spring提供了一个非常好用的接口----JavaMailSender,用于发送邮件,本文就讲解一下如何快速上手JavaMailSender
这里我是利用网易163邮箱给qq邮箱发送邮件
包括普通文本邮件、附件邮件、图片展示在表面的邮件
使用springboot发送邮箱,需要在pom.xml中导入依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
</dependency>
这一步需要我们先给邮箱开通SMTP服务,这里我使用的是网易的163邮箱,
因为我已经开通就不给大家演示了,这一步大家可以网上搜索:“如何开通网易163的SMTP服务器”,按照步骤开通即可,非常简单,两三步就能完成。
假设我们已经开通完毕,我们还需要在springboot的application.yml文件中写明配置信息,如下:
#邮箱
spring:
mail:
default-encoding: utf-8
host: smtp.163.com
username: *******@163.com #开通smtp的邮箱
password: PIMQXJZBRCULUSXE #开通时显示的授权密码
这里展示了三种发送邮件的方法
其中值得一提的是JavaMailSender,是我们上边导入依赖时,spring中的自动注入的接口,发送邮件我们需要用到这个接口中的send(message)方法
/** * Description: 控制层web方法 * @author ltc * @version 1.0 * @date 2023/3/31 14:18 */ @RestController @RequestMapping("/test") @Slf4j public class TestController { @Autowired private JavaMailSender mailSender; /** *发送邮件(简单的文本邮件) **/ @PostMapping("/sendmail") public void sendMail(){ SimpleMailMessage message = new SimpleMailMessage(); message.setFrom("13331755335@163.com"); message.setTo("1771967998@qq.com"); message.setSubject("这是个测试"); message.setText("hello,这是文本内容); try{ mailSender.send(message);//发送邮件 System.out.println("发送成功"); } catch (Exception e){ System.out.println("发送失败"); } } /** *将发送的图片添加到邮件的附件中 **/ @PostMapping("/sendmail2") public void sendMail2() throws MessagingException { MimeMessage mimeMessage = mailSender.createMimeMessage(); MimeMessageHelper helper = new MimeMessageHelper(mimeMessage, true); helper.setFrom("13331755335@163.com"); //设置发送者 helper.setTo("1771967998@qq.com"); //设置接收者 helper.setSubject("主题:送你一张图片"); //设置邮件的主题 helper.setText("你好,这是文本,送你一张图片"); //设置邮件的内容 FileSystemResource file = new FileSystemResource(new File("D:\\imgs\\图片2.jpg"));//获取本地图片 helper.addAttachment("附件1",file); //给邮件添加附件 try{ mailSender.send(mimeMessage); System.out.println("发送成功"); }catch (Exception e){ System.out.println("发送失败"); } } /** *将发送的图片展示在表面 **/ @PostMapping("/sendmail3") public void sendMail3() throws MessagingException { MimeMessage mimeMessage = mailSender.createMimeMessage(); MimeMessageHelper helper = new MimeMessageHelper(mimeMessage, true); helper.setFrom("13331755335@163.com"); helper.setTo("1771967998@qq.com"); helper.setSubject("主题:图片显示在文本上"); helper.setText("<html><body><img src=\"cid:hello\" ></body></html>",true); FileSystemResource file = new FileSystemResource(new File("D:\\imgs\\图片2.jpg")); //addInline的第一个参数一定要和上边的src一致 helper.addInline("hello",file); try{ mailSender.send(mimeMessage); System.out.println("发送成功"); }catch (Exception e){ System.out.println("发送失败"); } } }
最后,大家就可以启动服务,访问自己的controller方法测试一下。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。