一、背景

在当下的大部分应用中,通过邮件来激活账号、更改密码、验证权限等场景都是不可或缺的,邮件发送的教程已经有很多了,但大多都是针对主流的邮箱和主流的服务器。在阿里云服务器中会存在一些不一样的问题。

二、步骤

要使用邮件服务器,总的来说需要3步:

  1. 开通发送邮箱的SMTP服务,并获取授权码。
  2. 在SpringBoot中增加邮件发送的配置。
  3. 调用类库的相应方法发送邮件。

三、开通发送邮箱的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端口禁用问题相关推荐

  1. 关于阿里云服务器屏蔽25端口

    2017年九月份之后,阿里云屏蔽了邮件发送的25端口: 在使用阿里云企业邮箱发送邮件修改端口为80可以正常发送邮件: SmtpClient client = new SmtpClient(" ...

  2. 阿里云服务器开放80端口

    阿里云服务器开放80端口 1.先登录阿里云官网 https://www.aliyun.com/ 2.点击控制台 3.点击左边的三条杆 4.点击进去之后,找到云服务器ECS 5.点击蓝色字体的服务器名称 ...

  3. 阿里云服务器如何开放端口

    阿里云服务器如何开放端口,购买阿里云服务器后需要一定的配置,进入阿里云后台后选择所购买的实例: 进入实例后,选择左侧的实例安全组: 选择安全组列表 添加规则,选择手动添加即可 选择添加规则 选择添加对 ...

  4. 在阿里云服务器上配置端口步骤

    在阿里云服务器上配置端口步骤 第一步:点击[云服务器ECS],进入该服务器信息界面. 第二步:点击[云服务器],如下图: 第三步:进入[云服务器]页面可看到[实例]页面上会有实力列表,点击列表上的[管 ...

  5. 阿里云服务器不能发邮件禁用25端口的三种解决方法

    分享使人快乐,遇到的坑通过博文分享给大家,总结解决办法使更多的人节省宝贵的时间去干其他的事,于是我决定写下了这篇博文: 阿里云发送SMTP邮件失败   阿里云服务器不能发邮件解决方法 ,第三种方法是可 ...

  6. Springboot 阿里云服务器 发送 邮件问题

    在本地中能够发送邮箱,部署到阿里云却发不了??? 原本的application.properties邮箱配置 # 邮件协议 spring.mail.protocol=smtp # 网易邮箱 smtp ...

  7. CentOS 初体验四: 阿里云服务器开启8080端口

    转载请标明出处:http://blog.csdn.net/zhaoyanjun6/article/details/78955560 本文出自[赵彦军的博客] 使用阿里云服务器时经常要打开一些端口,然后 ...

  8. 阿里云服务器对外开放tomcat端口访问

    今天第一次在阿里云服务器ecs上安装完成tomcat,然后启动tomcat之后.在本地输入ip:端口,发现不能访问. 出现这个的原因可能是你购买的服务器是 专有网络 类型的 如果是专有网络类型的服务器 ...

  9. 阿里云服务器ip:端口号无法访问

    采坑记录: 问题描述: http://localhost:8080 可以访问 http://ip:8080 无法访问 解决方法: 在阿里云的防火墙配置自定义端口号即可解决. 转载于:https://w ...

最新文章

  1. pytest使用简介
  2. mysql create at_create_at update_at
  3. 为什么VS(visual studio)中会建议宏 #define 转换为constexpr?
  4. 一行Python代码就可以玩一些童年小游戏
  5. 【Spring】Spring 中的bean 和我们java中的bean有什么区别以及spring 模拟实现
  6. dubbo 服务压测_Dubbo高性能网关--Flurry介绍
  7. python list方法说明_对python中list的五种查找方法说明
  8. List增删元素后size大小发生变化带来的影响、Stream流操作、Lambda表达式
  9. 趋势 | 或许,这就是大佬吧!——美国ETF产业三巨头格局浅谈
  10. 玩Mega8 智能充电器-12. 终于实现-dV检测(转)
  11. 计算信源熵和香农编码C语言,信息论与编码课程设计报告统计信源熵与香农编码...
  12. Excel ----- 身份证自动判断男女 公式
  13. 大胖子走迷宫 [蓝桥杯 ]
  14. 移动APP登录注册(vue+vant)
  15. 干货 | 五千字长文带你快速入门FlinkSQL
  16. HashMap扩容改进分析
  17. 这些故事你尽管听,不奇葩算我输!
  18. Ecplise捕捉异常的快捷键
  19. Vanilla Node.js REST API示例
  20. 10天用Flutter撸了个高仿携程App,含小米、腾讯、阿里

热门文章

  1. 【转】通过JAVA获取优酷、土豆、酷6、6间房等视频
  2. Echarts空气质量地图效果
  3. 学习分享——基于深度学习的NILM负荷分解(四)深度学习实现,代码讲解
  4. Qt生成随机数-qrand及QRandomGenerator
  5. 【51单片机】基于51单片机的智能浇花系统的设计与实现
  6. 基于springboot的仓库管理系统
  7. 基于Matlab模拟地球重力场
  8. mcp2518驱动调试
  9. 伺服电机在工作中发出噪音是为什么呢?
  10. 支付宝 android ui,Android 仿支付宝芝麻信用分仪表盘效果 CreditSesameRingView