JAVA项目发送邮箱 SpringBoot

缺乏、安全感 2023-10-03 19:52 83阅读 0赞

想用JAVA发送邮箱仅需要简单的几个步骤就可以实现啦!!!!!

1、在开始之前需要去获取到自己邮箱的授权码

我拿网易@163.com做例子网易邮箱网址

ed2a490ab1a7472abbb10c2bf8d379e4.jpeg

3a9137e80ecd4844baf4cd0f9ceb450e.jpeg

开启POP3/SMTP后会弹出我们自己的邮箱授权码

只会显示一次,如果想再次看只能重新生成,所以弹出授权码要复制保存好(重点!!)

2、然后在JAVA项目中配置我们的application.properties

  1. spring.mail.host=smtp.163.com
  2. spring.mail.port=465
  3. spring.mail.username=!!!!你自己的邮箱!!!!
  4. spring.mail.password=!!!!你自己的邮箱授权码!!!!
  5. spring.mail.default-encoding=UTF-8
  6. spring.mail.properties.mail.smtp.socketFactory.class=javax.net.ssl.SSLSocketFactory
  7. spring.mail.properties.mail.debug=true

3、接下来就是代码部分

  1. @Service
  2. public class SendService {
  3. // JavaMailSender 在Mail 自动配置类 MailSenderAutoConfiguration 中已经导入,这里直接注入使用即可
  4. @Resource
  5. JavaMailSender javaMailSender;
  6. //方法5个参数分别表示:邮件发送者、收件人、抄送人、邮件主题以及邮件内容
  7. public void sendSimpleMail(String from, String to, String subject, String text) {
  8. // 简单邮件直接构建一个 SimpleMailMessage 对象进行配置并发送即可
  9. SimpleMailMessage simpMsg = new SimpleMailMessage();
  10. simpMsg.setFrom(from);
  11. simpMsg.setTo(to);
  12. simpMsg.setCc(cc);
  13. simpMsg.setSubject(subject);
  14. simpMsg.setText(text);
  15. javaMailSender.send(simpMsg);
  16. }
  17. }
  18. @Service
  19. public class EmailServiceImpl implements EmailService {
  20. @Autowired
  21. SendService sendService;
  22. @Override
  23. public CommonResult sendEmail(EmailEntity emailEntity) {
  24. EmailEntity emailEntity = new EmailEntity();
  25. //生成六位随机数(验证码)
  26. String s = RandomStringUtils.randomNumeric(6);
  27. //这里的问号是你的邮箱 需要和你的application.properties中写的邮箱相同否则会报错
  28. String from = "??????";
  29. //这里的感叹号是你要发送给谁
  30. String to = !!!!!!!;
  31. //subject是你的标题头
  32. String subject = "测试验证";
  33. String text = "尊贵的用户您好,您的验证码是: "+s+" 验证码仅在15分钟内有效,请及时校验.";
  34. sendService.sendSimpleMail(from,to,subject,text);
  35. return CommonResult.ok();
  36. }

Controller

  1. @GetMapping("send")
  2. public CommonResult send(EmailEntity emailEntity){
  3. CommonResult yzm = emailService.sendEmail(emailEntity);
  4. return yzm;
  5. }

POM

  1. <!--邮箱-->
  2. <dependency>
  3. <groupId>org.springframework.boot</groupId>
  4. <artifactId>spring-boot-starter-mail</artifactId>
  5. </dependency>
  6. <!--邮箱依赖-->
  7. <dependency>
  8. <groupId>javax.mail</groupId>
  9. <artifactId>mail</artifactId>
  10. <version>1.5.0-b01</version>
  11. </dependency>
  12. <!--随机数-->
  13. <dependency>
  14. <groupId>org.apache.commons</groupId>
  15. <artifactId>commons-lang3</artifactId>
  16. <version>3.7</version>
  17. </dependency>

调用controller方法给予实体对象或参数即可实现发送邮箱

如果用qq邮箱可以把application.properties中的

spring.mail.host=smtp.163.com

改成

spring.mail.host=smtp.qq.com

其他平台也是同样哦

还有不明白或者有报错可以通过网络查询或者评论区讨论

发表评论

表情:
评论列表 (有 0 条评论,83人围观)

还没有评论,来说两句吧...

相关阅读