Java 之 Spring Boot 发送邮箱(解决依赖找不到异常)

x33g5p2x  于2022-05-30 转载在 Java  
字(2.2k)|赞(0)|评价(0)|浏览(653)

Could not autowire. No beans of ‘JavaMailSender’ type found.解决
javax.mail.internet.MimeMessage 解决

1、引入依赖(注意版本号)pom.xml

  1. <!--邮箱依赖-->
  2. <dependency>
  3. <groupId>org.springframework.boot</groupId>
  4. <artifactId>spring-boot-starter-mail</artifactId>
  5. </dependency>
  6. <dependency>
  7. <groupId>javax.mail</groupId>
  8. <artifactId>javax.mail-api</artifactId>
  9. <version>1.6.2</version>
  10. </dependency>
  11. <dependency>
  12. <groupId >com.sun.mail</groupId >
  13. <artifactId >javax.mail</artifactId >
  14. <version>1.4.7</version>
  15. </dependency>
  16. <!-- https://mvnrepository.com/artifact/javax.mail/mail -->
  17. <dependency>
  18. <groupId>javax.mail</groupId>
  19. <artifactId>mail</artifactId>
  20. <version>1.4.7</version>
  21. </dependency>

2、设置配置文件

application.properties

  1. spring.mail.host=smtp.qq.com
  2. spring.mail.protocol=smtp
  3. spring.mail.username=xxxx@qq.com
  4. spring.mail.password=#这里是编码到请求邮箱的设置里面寻找
  5. spring.mail.default-encoding=UTF-8
  6. spring.mail.properties.mail.smtp.auth=true
  7. spring.mail.properties.mail.smtp.starttls.enable=true
  8. spring.mail.properties.mail.smtp.starttls.required=true

3、编写实体类

  1. public class SendEmail implements Serializable {
  2. /**
  3. * 邮件接收方,可多人
  4. */
  5. private String[] tos;
  6. /**
  7. * 邮件主题
  8. */
  9. private String subject;
  10. /**
  11. * 邮件内容
  12. */
  13. private String content;
  14. public String[] getTos() {
  15. return tos;
  16. }
  17. public void setTos(String[] tos) {
  18. this.tos = tos;
  19. }
  20. public String getSubject() {
  21. return subject;
  22. }
  23. public void setSubject(String subject) {
  24. this.subject = subject;
  25. }
  26. public String getContent() {
  27. return content;
  28. }
  29. public void setContent(String content) {
  30. this.content = content;
  31. }
  32. public ToEmail() {
  33. }
  34. public SendEmail (String[] tos, String subject, String content) {
  35. this.tos = tos;
  36. this.subject = subject;
  37. this.content = content;
  38. }
  39. }

4、注入并发送邮件

  1. @Autowired
  2. private JavaMailSender mailSender;
  3. @Value("${spring.mail.username}")
  4. private String from;
  1. public Boolean commonEmail(SendEmail sendEmail) {
  2. //创建简单邮件消息
  3. SimpleMailMessage message = new SimpleMailMessage();
  4. //谁发的
  5. message.setFrom(from);//from
  6. //谁要接收
  7. message.setTo(sendEmail.getTos());
  8. //邮件标题
  9. message.setSubject(sendEmail.getSubject());
  10. //邮件内容
  11. message.setText(sendEmail.getContent());
  12. try {
  13. mailSender.send(message);
  14. return true;
  15. } catch (MailException e) {
  16. e.printStackTrace();
  17. throw new ServiceException("邮箱格式错误");
  18. }
  19. }

相关文章

最新文章

更多