当前位置:   article > 正文

Java实现邮箱发送(Springboot)_java邮件发送功能平台

java邮件发送功能平台

1. 导入pom.xml 依赖

  1. <!--spring boot web的依赖-->
  2. <dependency>
  3. <groupId>org.springframework.boot</groupId>
  4. <artifactId>spring-boot-starter-web</artifactId>
  5. </dependency>
  6. <!-- mail 依赖 -->
  7. <dependency>
  8. <groupId>org.springframework.boot</groupId>
  9. <artifactId>spring-boot-starter-mail</artifactId>
  10. </dependency>
  11. <!--thymeleaf模版依赖-->
  12. <dependency>
  13. <groupId>org.springframework.boot</groupId>
  14. <artifactId>spring-boot-starter-thymeleaf</artifactId>
  15. </dependency>
  16. <!--freemarker模版依赖-->
  17. <dependency>
  18. <groupId>org.springframework.boot</groupId>
  19. <artifactId>spring-boot-starter-freemarker</artifactId>
  20. </dependency>
  21. <!-- Lombok工具 -->
  22. <dependency>
  23. <groupId>org.projectlombok</groupId>
  24. <artifactId>lombok</artifactId>
  25. <version>1.18.4</version>
  26. <scope>provided</scope>
  27. </dependency>

2. application.yml

  1. spring:
  2. # 发送邮件配置
  3. mail:
  4. host: smtp.qq.com # 配置 smtp 服务器地址
  5. port: 587 # smtp 服务器的端口
  6. username: xxxxxx@qq.com # 配置邮箱用户名(你的邮箱地址)
  7. password: xxxxxxxxx # 配置申请到的授权码(第6步教程复制的授权码)
  8. default-encoding: UTF-8 # 配置邮件编码
  9. properties:
  10. mail:
  11. smtp:
  12. socketFactoryClass: javax.net.ssl.SSLSocketFactory # 配饰 SSL 加密工厂
  13. debug: true
  14. from: xxxxxxxx@qq.com # 发送方邮件,配在yml中可方便更改(你的邮箱)

3. EmailService接口

  1. import java.io.File;
  2. public interface EmailService {
  3. /**
  4. * 发送文本/简单的邮件
  5. * @param receiverName 接收人
  6. * @param title 标题
  7. * @param content 内容
  8. */
  9. void sendStringEmail(String receiverName, String title, String content);
  10. /**
  11. * 发送大文件/附件的邮件
  12. * @param receiverName
  13. * @param title
  14. * @param content
  15. * @param file 文件
  16. */
  17. void sendBigEmail(String receiverName, String title, String content, File file);
  18. /**
  19. * 发送模版邮件
  20. * @param receiverName
  21. * @param title
  22. * @param information 模版参数名(html页面)
  23. */
  24. void sendTemplateEmail(String receiverName, String title, String information);
  25. }

 4. EmailServiceImpl 实现类

  1. import com.example.email.emaill.EmailConfig;
  2. import com.example.email.service.EmailService;
  3. import org.springframework.beans.factory.annotation.Autowired;
  4. import org.springframework.core.io.FileSystemResource;
  5. import org.springframework.mail.SimpleMailMessage;
  6. import org.springframework.mail.javamail.JavaMailSender;
  7. import org.springframework.mail.javamail.MimeMessageHelper;
  8. import org.springframework.stereotype.Service;
  9. import org.thymeleaf.TemplateEngine;
  10. import org.thymeleaf.context.Context;
  11. import javax.mail.internet.MimeMessage;
  12. import java.io.File;
  13. import java.util.HashMap;
  14. import java.util.Map;
  15. @Service
  16. public class EmailServiceImpl implements EmailService {
  17. @Autowired
  18. private EmailConfig emailConfig;
  19. @Autowired
  20. private JavaMailSender javaMailSender;
  21. @Autowired
  22. private TemplateEngine templateEngine;
  23. // @Autowired
  24. // private FreeMarkerConfigurer markerConfigurer;
  25. //发送文本/简单的邮件
  26. @Override
  27. public void sendStringEmail(String receiverName, String title, String content) {
  28. SimpleMailMessage message = new SimpleMailMessage();
  29. message.setFrom(emailConfig.getEmailFrom());
  30. message.setTo(receiverName);
  31. message.setSubject(title);
  32. message.setText(content);
  33. javaMailSender.send(message);
  34. }
  35. //发送大文件/附件的邮件
  36. @Override
  37. public void sendBigEmail(String receiverName, String title, String content, File file) {
  38. MimeMessage message = javaMailSender.createMimeMessage();
  39. try {
  40. MimeMessageHelper helper = new MimeMessageHelper(message,true);
  41. helper.setFrom(emailConfig.getEmailFrom());
  42. helper.setTo(receiverName);
  43. helper.setSubject(title);
  44. helper.setText(content);
  45. FileSystemResource resource = new FileSystemResource(file);
  46. helper.addAttachment("附件", resource);
  47. }catch (Exception e){
  48. e.printStackTrace();
  49. }
  50. javaMailSender.send(message);
  51. }
  52. //发送模版邮件
  53. @Override
  54. public void sendTemplateEmail(String receiverName, String title, String information) {
  55. MimeMessage message = javaMailSender.createMimeMessage();
  56. try {
  57. MimeMessageHelper helper = new MimeMessageHelper(message,true);
  58. helper.setFrom(emailConfig.getEmailFrom());
  59. helper.setTo(receiverName);
  60. helper.setSubject(title);
  61. //封装模版使用的数据
  62. Map<String,Object> map = new HashMap<>();
  63. map.put("username","明世隐");
  64. //1.FreeMarker
  65. //1-1 获取FreeMarker模版
  66. //Template markertemplate = markerConfigurer.getConfiguration().getTemplate(information);
  67. //1-2 将模版内容转为字符串类型并将参数传入
  68. //String markertTtml = FreeMarkerTemplateUtils.processTemplateIntoString(markertemplate, map);
  69. //1-3 将字符串作为邮件内容
  70. //helper.setText(markertTtml,true);
  71. //2.Thymeleaf
  72. //2-1 获取Thymeleaf模版
  73. Context context = new Context();
  74. context.setVariable("username","瑶");
  75. //2-2 将模版内容转为字符串类型并将参数传入
  76. String thymeleafHtml = templateEngine.process("thymeleafTemplate", context);
  77. helper.setText(thymeleafHtml,true);
  78. }catch (Exception e){
  79. e.printStackTrace();
  80. }
  81. javaMailSender.send(message);
  82. }
  83. }

6. 获取授权码

6.1 点击设置 

 

6.2 账户 ->  POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务

6.3 管理服务

 

 6.4 生成授权码

 6.5 微信登录发完短信验证就可以生成授权码了

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/喵喵爱编程/article/detail/967622
推荐阅读
相关标签
  

闽ICP备14008679号