我一直试图通过spring boot发送电子邮件,我似乎无法成功 . 我一直在使用javamail api很长一段时间但是想使用springboot和spring mail .
public class SendMail {
@Autowired
private JavaMailSender javaMailSender;
public void sendingMail(String to, String subject, String body) {
SimpleMailMessage message = new SimpleMailMessage();
message.setTo(to);
message.setSubject(subject);
message.setText(body);
javaMailSender.send(message);
}
}
这是我的邮件
@Controller
public class ExamPle {
@Autowired
private SendMail sendMail;
@RequestMapping("/he")
public String homePage() {
sendMail.sendingMail("bobobush007@gmail.com", "Welcome George", "Sample Message here");
return "Sent";
}
}
我已经在我的pom文件中有sprint-boot-starter-mail但我不断收到此错误消息 . 我甚至看过youtube关于如何做到这一点的教程视频,但它不起作用 . 我使用的是Spring Tool Suite版本:3.9.0.RELEASE .
属性文件
spring.mail.host=smtp.gmail.com
spring.mail.username=my-email-address
spring.mail.password=my-password
spring.mail.port=587
spring.mail.properties.mail.smtp.auth=true
spring.mail.properties.mail.smtp.starttls.enable=true
spring.mail.defaultEncoding=UTF-8
2017-09-14 05:25:57.811 INFO 12576 --- [main] com.example.demo.EmaildemoApplication:使用PID 12576在Georges-MacBook-Pro.local上启动EmaildemoApplication(由/ Users / georgetebo /中的georgetebo启动) STS Projects / Emaildemo)2017-09-14 05:25:57.814 INFO 12576 --- [main] com.example.demo.EmaildemoApplication:没有活动的配置文件集,回退到默认配置文件:默认2017-09-14 05: 25:57.845 INFO 12576 --- [main] ationConfigEmbeddedWebApplicationContext:刷新org.springframework.boot.context.embedded.AnnotationConfigEmbeddedWebApplicationContext@3d3fcdb0:启动日期[Thu Sep 14 05:25:57 WAT 2017];上下文层次结构2017-09-14 05:25:58.652 INFO 12576 --- [main] sbcetTomcatEmbeddedServletContainer:用端口初始化的Tomcat:8080(http)2017-09-14 05:25:58.662 INFO 12576 - - [main] o.apache.catalina.core.StandardService:启动服务[Tomcat] 2017-09-14 05:25:58.662 INFO 12576 --- [main] org.apache.catalina.core.StandardEngine:启动Servlet引擎:Apache Tomcat / 8.5.20 2017-09-14 05:25:58.714 INFO 12576 --- [ost-startStop-1] oaccC [Tomcat] . [localhost] . [/]:初始化Spring嵌入式WebApplicationContext 2017-09 -14 05:25:58.714 INFO 12576 --- [ost-startStop-1] osweb.context.ContextLoader:Root WebApplicationContext:初始化完成时间为871 ms 2017-09-14 05:25:58.821 INFO 12576 --- [ ost-startStop-1] osbwservlet.ServletRegistrationBean:映射servlet:'dispatcherServlet'到[/] 2017-09-14 05:25:58.823 INFO 12576 --- [ost-startStop-1] osbwservlet.FilterRegistrationBean:映射过滤器:'characterEncodingFilter'改为:[/] 20 17-09-14 05:25:58.824 INFO 12576 --- [ost-startStop-1] osbwservlet.FilterRegistrationBean:映射过滤器:'hiddenHttpMethodFilter'到:[/] 2017-09-14 05:25:58.824 INFO 12576 --- [ost-startStop-1] osbwservlet.FilterRegistrationBean:映射过滤器:'httpPutFormContentFilter'到:[/] 2017-09-14 05:25:58.824 INFO 12576 --- [ost-startStop-1] osbwservlet .FilterRegistrationBean:映射过滤器:'requestContextFilter'到:[/] 2017-09-14 05:25:58.848 WARN 12576 --- [main] ationConfigEmbeddedWebApplicationContext:在上下文初始化期间遇到异常 - 取消刷新尝试:org.springframework.beans . factory.UnsatisfiedDependencyException:创建名为'examPle'的bean时出错:通过字段'sendMail'表示的不满意的依赖关系;嵌套异常是org.springframework.beans.factory.NoSuchBeanDefinitionException:没有'com.example.demo.SendMail'类型的限定bean可用:预期至少有1个bean可以作为autowire候选者 . 依赖注释:{@ org.springframework.beans.factory.annotation.Autowired(required = true)} 2017-09-14 05:25:58.850 INFO 12576 --- [main] o.apache.catalina.core.StandardService:停止服务[Tomcat] 2017-09-14 05:25:58.861 INFO 12576 --- [main] utoConfigurationReportLoggingInitializer:启动ApplicationContext时出错 . 要显示自动配置报告,请在启用“debug”的情况下重新运行应用程序 . 2017-09-14 05:25:58.927 ERROR 12576 --- [主要] osbdLoggingFailureAnalysisReporter:***************************申请失败开始描述:com.example.demo.ExamPle中的字段sendMail需要一个无法找到的类型为“com.example.demo.SendMail”的bean . 操作:考虑在配置中定义类型为“com.example.demo.SendMail”的bean .
这是我的Pom文件
http://maven.apache.org/xsd/maven-4.0.0.xsd“> 4.0.0
<groupId>com.mailsender</groupId>
<artifactId>MailSender</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<name>MailSender</name>
<description>ZemoPoint for Spring Boot</description>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.6.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
我已经卸载了我的jdk以及STS并安装了新的副本 . 现在我收到此错误
4 回答
你有没有尝试过将javax.mail添加到你的pom中? Spring电子邮件发件人对JavaMail具有依赖性 .
这很有效 .
我认为您应该使用的密码是gmail的生成应用密码,它不应该只是我猜的任何密码 .
似乎您的属性未正确获取,例如:
您应该尝试使用其他方式:
从帖子Spring Boot Freemarker Email Template看更多这种方式
希望这有帮助!