大致步骤还是遵循三部曲(导包配置)
1、导包
首先导入必要的包,版本默认和web版本一致
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-mail</artifactId> </dependency>
2、配置
首先开启邮箱的SMTP服务:
首先打开自己的qq邮箱,然后打开设置中的账户
然后通过短信开启POP3/SMTP服务,记下自己的授权码
然后使用IMAP服务
最后配置项目的配置文件,端口号要用默认的25,如下:
spring: mail: host: smtp.qq.com username: qq邮箱 password: 授权码 port: 25 default-encoding: utf-8
3、测试
测试就直接上代码了
public class MyTest { @Resource JavaMailSenderImpl javaMailSender; @Test public void handler(){ MimeMessage mimeMessage = javaMailSender.createMimeMessage(); try { MimeMessageHelper mimeMessageHelper = new MimeMessageHelper(mimeMessage,true); mimeMessageHelper.setFrom("发送人邮箱","发送人昵称"); mimeMessageHelper.setTo("接收人邮箱"); mimeMessageHelper.setSubject("标题"); mimeMessageHelper.setText("内容"); javaMailSender.send(mimeMessage); System.out.println("发送完成"); } catch (MessagingException e) { e.printStackTrace(); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } } }
4、封装应用
首先封装一个实体类包括如下属性
public class MailVo { private String to;//发送给谁 private String from;//谁发送的 private String personal;//用户民 private String subject;//主题 private String content;//内容 }
然后通过一个实体对象来请求邮件
@Resource JavaMailSender javaMailSender; @PostMapping("/send") CommonResult send(MailVo mailVo){ MimeMessage mimeMessage = javaMailSender.createMimeMessage(); try { MimeMessageHelper helper = new MimeMessageHelper(mimeMessage,true); helper.setFrom(mailVo.getFrom(),mailVo.getPersonal()); helper.setTo(mailVo.getTo()); helper.setSubject(mailVo.getSubject()); helper.setText(mailVo.getContent(),true); javaMailSender.send(mimeMessage); } catch (MessagingException e) { e.printStackTrace(); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } }
这样就可以成功发送邮件了。当然邮件的内容不止文字的形式,还可以发送html格式等等。
5、成功