当前位置: 首页 > 知识库问答 >
问题:

从spring boot应用程序发送电子邮件遇到麻烦

左宁
2023-03-14

我一直试图通过spring boot发送电子邮件,我似乎不能成功。我已经使用javamail api很长时间了,但是我想把springboot和spring邮件一起使用。

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工具套件版本:3.9.0.发行版。

属性文件

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信息12576---[main]com.example.demo.EmaildemoApplication:在Georges-macbook-pro.local上启动EmaildemoApplication,PID 12576(由georgetebo在/users/georgetebo/STS Projects/EmailDemo中启动)2017-09-14 05:25:57.814信息12576---[main]com.example.demo.EmaildemoApplication:未设置活动配置文件,返回到默认配置文件:default 2017-09-14 05:25:57.814信息上下文层次结构的根2017-09-14 05:25:58.652信息12576--[main]S.B.C.E.T.TomCatEmbeddedServletContainer:Tomcat已使用端口初始化:8080(http)2017-09-14 05:25:58.662信息12576--[
main]o.apache.catalina.core.StandardService:启动服务[Tomcat]2017-09-14 05:25:58.662信息12576--[main]org.apache.catalina.core.StandardEngine:正在启动Servlet引擎:Apache Tomcat/8.5.20 2017-09-14 05:25:58.714信息12576---[ost-startStop-1]O.A.C.C.C.[Tomcat].[localhost].[/]:正在初始化spring嵌入式WebApplicationContext 2017-09-14 05:25:58.714信息12576---[ost-startStop-1]o.s.web.context.contextLoader:根WebApplicationContext:初始化在871 ms 2017-09-14 05:25:58.821信息12576---[ost-startStop-1]O.S.B.W.Servlet.ServletRegistrationBean:映射servlet:“Dispatcher Servlet”到[/]2017-09-14 05:25:58.823信息12576---[ost-startStop-1]O.S.B.W.Servlet.FilterRegistrationBean:映射筛选器:“Character EncodingFilter”到:[/]2017-09-14 05:25:58.824信息12576---[ost-startStop-1]O.S.B.W.Servlet.FilterRegistrationBean:映射筛选器:“Hidden HttpMethodFilter”到:[/]2017-09-14 05:25:58.824信息12576---[ost-startStop-1]嵌套异常为org.springframework.beans.factory.noSuchBeanDefinitionException:没有“com.example.demo.sendmail”类型的合格bean可用:应至少有一个合格的自动候选bean。依赖项注释:{@org.SpringFramework.Beans.Factory.Annotation.AutoWired(required=true)}2017-09-14 05:25:58.850信息12576---[main]o.apache.catalina.core.StandardService:正在停止服务[Tomcat]2017-09-14 05:25:58.861信息12576---[main]utoConfigurationReportLoggingInitializer:

启动ApplicationContext时出错。若要显示自动配置报告,请在启用“debug”的情况下重新运行应用程序。2017-09-14 05:25:58.927错误12576-[main]O.S.B.D.LoggingFailureAnalysisReporter:

应用程序启动失败

描述:

com.example.demo.example中得字段sendMail需要类型为“com.example.demo.sendMail”得bean,但找不到该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>

null

我已经卸载了我的jdk和STS并安装了新的副本

共有1个答案

古畅
2023-03-14

这管用。

@Service
public class SendMail {

@Autowired
private JavaMailSender javaMailSender;

  public void sendingMail(String to, String subject, String body) {
    MimeMessage message=javaMailSender.createMimeMessage();
    MimeMessageHelper helper;
    helper=new MimeMessageHelper(message,true);
    helper.setTo(to);
    helper.setSubject(subject);
    helper.setText(body);
    javaMailSender.send(message);

 }}
 类似资料:
  • 然后我尝试通过以下操作来测试这一点: 有没有人知道这是怎么回事!任何提示都很感激!

  • 问题内容: 在我的AngularJS Web应用程序之一中,我需要通过向相关人员发送电子邮件来确认密码。如何在AngularJS中实现呢?我是.NET专家,正在使用Visual Studio 2013。 问题答案: 我已经通过网络服务实现了,请参考下面的代码片段 和ajax调用为

  • 我研究了以下问题和答案:spring boot-无法连接到SMTP主机:SMTP.gmail.com,端口:25,响应:421 我想做同样的事情--用Gmail服务器从spring boot应用程序发送电子邮件。 我的配置是: 这是从另一个问题复制的,只有用户名和密码已经改变了我的需要。我的scienario唯一不同的是,电子邮件地址的域不是gmail.com。 我的电子邮件客户端类是: 我的例外

  • 我正在做一个学校项目,我试图在创建帐户时发送一封验证电子邮件,但我不断收到一个身份验证错误,即使我的凭据是正确的。 错误日志: 我尝试了几种不同的身份验证器,但似乎都不起作用!谢谢!

  • 我正在用Android开发一个应用程序。我不知道如何从应用程序发送电子邮件?