发送邮件:SpringBoot+阿里云服务器+解决25端口禁用问题
一、背景
在当下的大部分应用中,通过邮件来激活账号、更改密码、验证权限等场景都是不可或缺的,邮件发送的教程已经有很多了,但大多都是针对主流的邮箱和主流的服务器。在阿里云服务器中会存在一些不一样的问题。
二、步骤
要使用邮件服务器,总的来说需要3步:
- 开通发送邮箱的SMTP服务,并获取授权码。
- 在SpringBoot中增加邮件发送的配置。
- 调用类库的相应方法发送邮件。
三、开通发送邮箱的SMTP服务
该步骤在其他大多数教程中都有说明,即在邮箱的设置界面开启相应的服务。以网易邮箱为例,其开启方式如下:
勾选相应服务后会弹出授权码设置框,设置自己的授权码即可(授权码会在SpringBoot的配置中用到)。
四、SpringBoot配置
配置分为2部分:
一是引入Java Mail的依赖库,在pom.xml中添加如下依赖:
<!--++++++邮件服务+++++++--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-mail</artifactId></dependency>
spring-boot-starter-mail封装了sun的Java Mail类库,并且利用SpringBoot的自动配置特性让我们更加易于使用。
二是添加邮箱用户名、授权码、邮件服务器域名等配置信息。在application.properties中添加如下配置:
#mail配置
# 设置邮箱主机
spring.mail.host=smtp.163.com
#设置端口为465,因为阿里云的25端口被禁用了
spring.mail.port=465
spring.mail.properties.mail.smtp.socketFactory.port = 465
spring.mail.properties.mail.smtp.socketFactory.class = javax.net.ssl.SSLSocketFactory
spring.mail.properties.mail.smtp.socketFactory.fallback = false# 设置用户名
spring.mail.username=yuanxueba_2018@163.com
# 设置密码,该处的密码是邮箱开启SMTP的授权码而非邮箱登录密码
spring.mail.password=********# 设置是否需要认证,如果为true,那么用户名和密码就必须的,
# 如果设置false,可以不设置用户名和密码,当然也得看你的对接的平台是否支持无密码进行访问的。
spring.mail.properties.mail.smtp.auth=true# STARTTLS[1] 是对纯文本通信协议的扩展。它提供一种方式将纯文本连接升级为加密连接(TLS或SSL),而不是另外使用一个端口作加密通信。
spring.mail.properties.mail.smtp.starttls.enable=true
spring.mail.properties.mail.smtp.starttls.required=true
在这里要特别注意,我们不能使用默认的25端口,因为阿里云处于安全考虑的原因,禁用了从16年之后申请的云服务器25端口。虽然可以申请开通,但比较麻烦且很容易被驳回,所以建议将发送端口改为465。
五、发送邮件
发送邮件的代码非常简洁,示例如下:
//声明发送对象
@Autowired
private JavaMailSender mailSender;//生成并填充消息体
SimpleMailMessage mailMessage = new SimpleMailMessage();
mailMessage.setFrom("yuanxueba_2018@163.com");//发送邮箱
mailMessage.setTo("518684584@qq.com");//接收邮箱
mailMessage.setSubject("测试邮件主题"); //邮件主题
mailMessage.setText(“邮件正文”); //邮件正文//发送邮件
mailSender.send(mailMessage);
六、总结
总的来说,发送邮件的步骤大致是一样的。但由于阿里云服务器将25端口禁用掉了,所以出现了一些特别的配置(如端口改用465等)。
除此之外,可以看出使用SpringBoot发送邮件非常简单,只需要几行配置和几行代码即可。
发送邮件:SpringBoot+阿里云服务器+解决25端口禁用问题相关推荐
- 关于阿里云服务器屏蔽25端口
2017年九月份之后,阿里云屏蔽了邮件发送的25端口: 在使用阿里云企业邮箱发送邮件修改端口为80可以正常发送邮件: SmtpClient client = new SmtpClient(" ...
- 阿里云服务器开放80端口
阿里云服务器开放80端口 1.先登录阿里云官网 https://www.aliyun.com/ 2.点击控制台 3.点击左边的三条杆 4.点击进去之后,找到云服务器ECS 5.点击蓝色字体的服务器名称 ...
- 阿里云服务器如何开放端口
阿里云服务器如何开放端口,购买阿里云服务器后需要一定的配置,进入阿里云后台后选择所购买的实例: 进入实例后,选择左侧的实例安全组: 选择安全组列表 添加规则,选择手动添加即可 选择添加规则 选择添加对 ...
- 在阿里云服务器上配置端口步骤
在阿里云服务器上配置端口步骤 第一步:点击[云服务器ECS],进入该服务器信息界面. 第二步:点击[云服务器],如下图: 第三步:进入[云服务器]页面可看到[实例]页面上会有实力列表,点击列表上的[管 ...
- 阿里云服务器不能发邮件禁用25端口的三种解决方法
分享使人快乐,遇到的坑通过博文分享给大家,总结解决办法使更多的人节省宝贵的时间去干其他的事,于是我决定写下了这篇博文: 阿里云发送SMTP邮件失败 阿里云服务器不能发邮件解决方法 ,第三种方法是可 ...
- Springboot 阿里云服务器 发送 邮件问题
在本地中能够发送邮箱,部署到阿里云却发不了??? 原本的application.properties邮箱配置 # 邮件协议 spring.mail.protocol=smtp # 网易邮箱 smtp ...
- CentOS 初体验四: 阿里云服务器开启8080端口
转载请标明出处:http://blog.csdn.net/zhaoyanjun6/article/details/78955560 本文出自[赵彦军的博客] 使用阿里云服务器时经常要打开一些端口,然后 ...
- 阿里云服务器对外开放tomcat端口访问
今天第一次在阿里云服务器ecs上安装完成tomcat,然后启动tomcat之后.在本地输入ip:端口,发现不能访问. 出现这个的原因可能是你购买的服务器是 专有网络 类型的 如果是专有网络类型的服务器 ...
- 阿里云服务器ip:端口号无法访问
采坑记录: 问题描述: http://localhost:8080 可以访问 http://ip:8080 无法访问 解决方法: 在阿里云的防火墙配置自定义端口号即可解决. 转载于:https://w ...
最新文章
- pytest使用简介
- mysql create at_create_at update_at
- 为什么VS(visual studio)中会建议宏 #define 转换为constexpr?
- 一行Python代码就可以玩一些童年小游戏
- 【Spring】Spring 中的bean 和我们java中的bean有什么区别以及spring 模拟实现
- dubbo 服务压测_Dubbo高性能网关--Flurry介绍
- python list方法说明_对python中list的五种查找方法说明
- List增删元素后size大小发生变化带来的影响、Stream流操作、Lambda表达式
- 趋势 | 或许,这就是大佬吧!——美国ETF产业三巨头格局浅谈
- 玩Mega8 智能充电器-12. 终于实现-dV检测(转)
- 计算信源熵和香农编码C语言,信息论与编码课程设计报告统计信源熵与香农编码...
- Excel ----- 身份证自动判断男女 公式
- 大胖子走迷宫 [蓝桥杯 ]
- 移动APP登录注册(vue+vant)
- 干货 | 五千字长文带你快速入门FlinkSQL
- HashMap扩容改进分析
- 这些故事你尽管听,不奇葩算我输!
- Ecplise捕捉异常的快捷键
- Vanilla Node.js REST API示例
- 10天用Flutter撸了个高仿携程App,含小米、腾讯、阿里