springboot java mail sender邮件发送超时

正常来说,发送邮件在本地发送走25端口都不会有问题,但是部署到linux环境就失败?看过很多博主写的,大多相互抄袭,不妨看看下面的解决方案吧。

1. 有关 SpringBoot 邮件服务

Spring Framework 自己有一套基于 JavaMail 的邮件服务包 org.springframework.mail,并通过 JavaMailSender 接口提供了一种简易的发送邮件的方式。这样,开发人员就可以不用操心底层的邮件系统,使用 Spring 提供的接口即可方便地使用邮件服务。官方文档:https://docs.spring.io/spring/docs/5.0.10.RELEASE/spring-framework-reference/integration.html#mail

而在 SpringBoot 中,提供了更为简便的自动配置,又进一步简化了开发人员工作。官方文档:https://docs.spring.io/spring-boot/docs/2.0.6.RELEASE/reference/htmlsingle/#boot-features-email 。下面介绍一下 SpringBoot 中配置邮件服务的具体方法。

2. 具体操作

2.1 添加 Maven 依赖

想要使用 SpringBoot 的邮件服务,需要依赖 spring-boot-starter-mail。所以在 pom 中添加依赖。

<dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-mail</artifactId>
</dependency>

2.2 配置 yml

一定要注意的点是,25接口有可能被运营商封了,为了验证,可以使用命令 telnet smtp.163.com 25,测试接口是否是可联通的。

如果不行,我们考虑使用465接口,该接口需要ssl证书验证,因此需要做一些权限相关的配置。具体为:starttls、socketFactory下的配置。

  • host: 为邮件服务的地址。一般在邮箱设置中可以看到。
  • port: 端口号。不同的服务商端口号可能不同,这个也需要自行查看。
  • username: 为登录邮箱的用户名。
  • password: 这个不是邮箱登录密码,而是第三方授权码。在邮箱设置中或者帮助文档中会有介绍,需要开通第三方授权。
  • properties: 其它参数。如果需要使用 SSL 方式,需要配置 mail.smtp.starttls.enable 为 true。有关详细的参数说明见文档https://javaee.github.io/javamail/#Development_Releases

有关 SpringBoot 中 auto-configuration 的参数见源码:

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值