2分钟

课程背景

实验预计耗时:45 分钟

1. 课程背景

1.1 课程目的

在个人工作学习中,很多项目会使用到邮件功能,比如新闻的推送,或者密码的修改等。SMTP 是一种提供可靠且有效的电子邮件传输的协议。本实验通过开启 QQ 邮箱 POP3/SMTP 服务,请求 QQ 邮箱的SMTP服务器实现邮件的发送并接收告警信息。完成本实验,学员将掌握利用 SMTP 协议发送邮件的方法,通过分别使用传统的 java.mail 发送邮件和在腾讯云上使用 SCF 发送邮件这两种方式,对比出其中更为简单且高效的方式来编辑和发送邮件给对方。

1.2 课前知识准备

1.相关概念

  • 环境准备相关
    • 静态网站:网站仅由 HTML,CSS,JavaScript 等前端文件组成的网站。静态网站没有与后端的数据交互,功能简单,要修改网站内容只能修改静态文件。
    • java 开发环境:要编写 java 程序,必须先搭建好 java 的开发环境。其中包括 JDK(java 开发工具)的安装、 path 环境变量和 classpath 的配置等。
    • IntelliJ IDEA:编写 java 程序的编辑工具,在业界被公认为最好的 java 开发工具,尤其在智能代码助手、代码自动提示、重构、J2EE 支持、各类版本工具(git、svn 等)、JUnit、CVS 整合、代码分析、 创新的 GUI 设计等方面的功能可以说是超常的。
  • 通用技术相关
    • SMTP:SMTP 是一种提供可靠且有效的电子邮件传输的协议。SMTP 是建立在 FTP 文件传输服务上的一种邮件服务,主要用于系统之间的邮件信息传递,并提供有关来信的通知。SMTP 独立于特定的传输子系统,且只需要可靠有序的数据流信道支持,SMTP 的重要特性之一是其能跨越网络传输邮件,即“SMTP 邮件中继”。使用 SMTP,可实现相同网络处理进程之间的邮件传输,也可通过中继器或网关实现某处理进程与其他网络之间的邮件传输。
  • 腾讯云产品相关
    • 消息队列 CMQ:CMQ 是腾讯云内部自研基于的高可靠、强一致、可扩展分布式消息队列,在腾讯内部包括微信手机 QQ 业务红包、腾讯话费充值、广告订单等都有广泛使用。目前已上线腾讯云对外开放,本实验需在 CMQ 中创建主题订阅来新建和完成邮件发送的任务。
    • 无服务器云函数 SCF:SCF 是腾讯云为企业和开发者们提供的 FaaS 服务,支持在无需购买和管理服务器的情况下运行代码。用户只需使用平台支持的语言编写核心代码并设置代码运行的条件,即可在腾讯云基础设施上弹性、安全地运行代码。在本实验中,我们可以选择指定的 SCF 服务更简单高效地完成发送邮件的任务。

2.相关原理

  • SMTP 协议的工作原理可分为如下3个过程:
    • 建立连接:在这一阶段,SMTP 客户请求与服务器的25端口建立一个 TCP 连接。一旦连接建立,SMTP 服务器和客户就开始相互通告自己的域名,同时确认对方的域名;
    • 邮件传送:利用命令,SMTP 客户将邮件的源地址、目的地址和邮件的具体内容传递给 SMTP 服务器,SMTP 服务器进行相应的响应并接收邮件;
    • 连接释放:SMTP 客户发出退出命令,服务器在处理命令后进行响应,随后关闭 TCP 连接。
  • 无服务器云函数 SCF 与传统架构的对比:

云函数

传统架构

部署速度

秒级部署

分钟/天/月级别部署

运维成本

无需关心底层资源,计算完全托管,“零”运维

服务器运维负担重,成本较高,耗时长

弹性扩缩

根据请求平行调整资源

扩缩容能力较差

成本投入

按需 按量付费

预付费/天粒度付费

触发条件

由事件触发(event-trigger)

空闲时也有资源在持续运行

  • SCF 的流事件处理原理图:
流事件处理原理图