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

spring邮件启动器忽略了spring。邮寄。*配置

夏炎彬
2023-03-14

我有一个使用Spring启动的项目,并在我的build.gradle中添加了以下依赖项:

compile group: 'org.springframework.boot', name: 'spring-boot-starter-mail', version: '1.5.7.RELEASE'

我的application.properties包含

spring.mail.host=mail.xxx
spring.mail.port=587
spring.mail.username=donotreply@xxx
spring.mail.password=xxx
spring.mail.properties.mail.smtp.auth=true
spring.mail.properties.mail.smtp.starttls.enable=true
spring.mail.properties.mail.smtp.from=donotreply@xxx

根据这里的多个答案和我发现的文档,这应该足够用这个设置创建bean了。

我现在想在服务类中使用邮件程序

@Autowired
private JavaMailSender emailSender;
[...]

@Value("${spring.mail.host}")
private String mailHost;

当我尝试使用emailSender发送邮件时,出现以下错误:

邮件服务器连接失败;嵌套的异常是com。太阳邮政util。MailConnectException:无法连接到主机,端口:localhost,25;超时-1;嵌套的例外是:java。网ConnectException:连接被拒绝:连接。失败消息:com。太阳邮政util。MailConnectException:无法连接到主机,端口:localhost,25;超时-1;嵌套的例外是:java。网ConnectException:连接被拒绝:连接

显然,它试图连接到localhost而不是配置的主机。变量mail Host确实包含正确的值,因此属性读取正确。

编辑:emailSender的自动连线类为org。springframework。邮政javamail。JavaMailSenderImpl,对我来说似乎是正确的。

共有2个答案

米树
2023-03-14

[发现]一位同事正在做同样的工作,并且提交了一个不完整的bean定义。那个豆子是自动连线的。

方轩昂
2023-03-14

在我的例子中,原因是我自己实例化了bean,如下所示:

@Bean
public JavaMailSender mailSender() throws IOException {
    JavaMailSenderImpl mailSender = new JavaMailSenderImpl();
    mailSender.setDefaultEncoding("UTF-8");
    return mailSender;
}

不知道为什么,但是这样,它会忽略应用程序。属性。可能原因是,我显式实例化了JavaMailSenderImpl以设置默认编码,并且可能实现不是应用程序。属性aware?

然而,移除这个bean解决了这个问题。

 类似资料:
  • 以下错误显示在Eclipse中 原因:org。springframework。邮政MailSendException:邮件服务器连接失败;嵌套的异常是javax。邮政MessaginException:无法连接到SMTP主机:SMTP。gmail。com,端口:25; 应用程序属性: 我尝试了一切:停用防病毒,启用不太安全的端口更改为465或25,但没有结果。

  • 我们有一个使用Spring Boot JPA/Hibernate构建的服务。 我在不同的jars包中有两个同名的类。 使用Eclipse运行应用程序会导致重复导入问题,因此我在其中一个实体中添加了以下内容: 它解决了Eclipse中的问题,我可以很好地运行应用程序。但是,当使用java -jar运行Spring Boot生成的jar时,问题又回来了: 看起来@Entity(name)属性被完全忽略

  • Spring Boot RESTful web service&Swagger2。我有以下类设置来为我的服务配置Swagger:

  • 我在Spring Boot(1.5.7.release)中添加了带有JWT身份验证的Spring Security性(5.0.0.release),但是CORS似乎不起作用。我添加了这里描述的CORS配置。我还尝试将@CrossOrigin添加到控制器中,但似乎没有改变任何东西。 和Spring Security调试日志: 下面是无效CORS请求的日志:

  • 本文向大家介绍Spring Boot实现邮件服务(附:常见邮箱的配置),包括了Spring Boot实现邮件服务(附:常见邮箱的配置)的使用技巧和注意事项,需要的朋友参考一下 前言 发送邮件应该是网站的必备功能之一,什么注册验证,忘记密码或者是给用户发送营销信息。最早期的时候我们会使用JavaMail相关api来写发送邮件的相关代码,后来spring退出了JavaMailSender更加简化了邮件

  • 我使用的是spring Boot2.2.4-Release和spring integration 5.2.3,我使用的是IntegrationFlow和DSL,因为我需要配置几个IMAP服务器。 所以我写了这段代码: 其中是 通过设置,我可以在处理程序组件中处理,但我有一些问题。 null 我不知道是否应该做什么来告诉框架关闭文件夹 谁能给我提点建议吗? 谢谢你