邮件传输协议SMTP和SMTPS
在《使用Spring Boot 优雅地发送邮件》中,我们实现了spring boot集成spring-boot-starter-mail,使用JavaMailSender发送电子邮件的功能。在配置文件中设置了端口和邮件传输协议,现在思考一个问题——它们是什么呢?这里就剥茧抽丝般的揭开其神秘面纱。
1. 三种邮件传输协议概述
作为一个勤学好问的程序猿,我们当然也要了解下邮件发送的协议,这个是关乎邮件发送的最根本的内容。
在上述邮件发送的过程中,邮件客户端和邮件服务器之间,以及两个邮件服务器之间进行邮件传递,是要遵守一定的规则,这个规则就是邮件传输协议。常见的电子邮件协议SMTP、POP3、IMAP,它们都隶属于TCP/IP协议族,默认状态下,分别通过TCP端口25、110和143建立连接。下面分别对其进行简单介绍。
- SMTP:简单邮件传输协议(Simple Mail Transfer Protocol),用于发送电子邮件的传输协议;主要用来从邮件客户端向邮件服务器发送邮件,也可以用来在邮件服务器之间转发邮件。
- POP3:Post Office Protocol,用于接收电子邮件的标准协议;
- IMAP:全称是 Internet Message Access Protocol,互联网消息协议,是POP3的代替协议;
后两者用来从邮件服务器获取邮件。

这三种协议都有对应SSL加密传输的协议,分别是SMTPS,POP3S和IMAPS。下面介绍SMTP和SMTPS协议。
2. SMTP协议
SMTP:简单邮件传输协议,是一个基于文本的协议。在其上指定了一个消息的一个或多个接收者(收件人和抄送人),然后消息文本会被传输。可以使用简单的telnet程序来测试一个SMTP服务器。
如今绝大多数邮件服务器都使用该协议。当你给别人发邮件时,你的服务器的某个动态端口(大于1024)就会和邮件服务器的25端口建立一个连接,你发送的邮件会通过这个连接传送到邮件服务器上,保存起来。需要注意的是,现在国内外的大云主机商(例如:阿里云),多数不允许连接外网的25端口。
3. SMTPS协议
SMTPS(SMTP-over-SSL)是SMTP协议基于SSL安全协议之上的一种变种协议,它继承了SSL安全协议的非对称加密的高度安全可靠性,可防止邮件泄露。SMTPS和SMTP协议一样,也是用来发送邮件的,只是更安全些,防止邮件被黑客截取泄密,还可实现邮件发送者抗抵赖功能。防止发送者发送之后删除已发邮件,拒不承认发送过这样一份邮件。端口465和587便是基于SMTPS协议开放的。
465端口(SMTPS):它是SMTPS协议服务所使用的其中一个端口,它在邮件的传输过程中是加密传输(SSL/TLS)的,相比于SMTP协议攻击者无法获得邮件内容,邮件在一开始就被保护了起来。
587端口(SMTPS):它是SMTPS协议服务所使用的另一个端口,它在邮件的传输过程中是加密传输(STARTTLS)的,相比于SMTP协议攻击者无法获得邮件内容,邮件在STARTTLS命令执行后才被加密。465用于Outlook上,而587可以用于任何程序上。
Reference
https://www.jianshu.com/p/c1763b172013
邮件传输协议SMTP和SMTPS的更多相关文章
- 45.简单邮件传输协议 SMTP
一丶简单邮件传输协议 简单邮件传输协议 简单邮件传输协议 SMTP smtplib 模块:(在 Python3版本中,可以通过 SMTP协议发送邮件的模块常为 smtplib, 并且这个模块属于内置模 ...
- 简单邮件传输协议SMTP
1.SMTP是由源地址到目的地址传送邮件的一组规则,用来控制信件的中转方式. 2.SMTP服务器是遵循SMTP协议的发送邮件服务器,用来发送或者中转发出的邮件,客户端通过SMTP命令与SMTP服务器进 ...
- SMTP 简单邮件传输协议
SMTP 锁定 本词条由“科普中国”百科科学词条编写与应用工作项目 审核 . SMTP(Simple Mail Transfer Protocol)即简单邮件传输协议,它是一组用于由源地址到目的地址传 ...
- 【RL-TCPnet网络教程】第33章 SMTP简单邮件传输协议基础知识
第33章 SMTP简单邮件传输协议基础知识 本章节为大家讲解SMTP(Simple Mail Transfer Protocol,简单邮件传输协议)的基础知识,方便后面章节的实战操作. (本 ...
- 理解邮件传输协议(SMTP、POP3、IMAP、MIME)
http://blog.csdn.net/xyang81/article/details/7672745 电子邮件需要在邮件客户端和邮件服务器之间,以及两个邮件服务器之间进行传递,就必须遵循一定的规则 ...
- POP3是收邮件的协议,SMTP是发邮件的协议,IMAP是一种邮箱通信协议。
我也是第一次接触这种服务,是因为我自己在做一个小小的自动推送天气情况到自己邮箱.所以才碰到这个的/ 看一下标题,我们可以先这样理解. POP3(Post Office Protocol - Versi ...
- JavaMail学习之一-邮件传输协议
协议:规定好的格式就是协议.就像http协议有请求协议和响应协议,邮件传输也分为发.收邮件的协议. 邮件协议分3种: 发邮件的:SMTP (Simple Mail Transport Protoca ...
- SMTP邮件传输协议发送邮件和附件
在以前接触的项目中,一直都是在做网站时用到了发送mail 的功能,在asp 和.net 中都有相关的发送mail 的类, 实现起来非常简单.最近这段时间因工作需要在C++ 中使用发送mail 的功能, ...
- SMTP邮件传输协议发送邮件和附件(转)
1. SMTP 常用命令简介 1). SMTP 常用命令 HELO/EHLO 向服务器标识用户身份 MAIL 初始化邮件传输 mail from: RCPT 标识单个的邮件接收人:常在MAIL ...
- 一次邮件发送协议SMTP问题排查
项目中需要用到smtp协议来发送邮件告警,后端的技术栈主要是Java和C++,Java项目里直接在网上找的现成的类完美实现,163邮箱,腾讯邮箱和阿里邮箱均测试通过,不幸的是C++的项目也需要使用sm ...
随机推荐
- 结构化语句header nav aside main article section footer
点击查看代码 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UT ...
- LaTeX使用记录
安装与使用 曾在Windows10下装过MikTeX,并配合vscode插件LaTeX Workshop使用过一段时间:这次转到wsl2中,并使用texlive,所以插件的配置json需要小修改 参考 ...
- C系统级编程-复习
数组对象类型 Array of Type,它是多个相同对象类型的一维派生类型,包含两要素:元素个数,元素的对象类型 所谓多维数组,不过是元素的迭代衍生,本质还是一维的 声明 对象标识的名称 对象类型 ...
- 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统
我在业余时间开发了一款自己的独立产品:升讯威在线客服与营销系统.陆陆续续开发了几年,从一开始的偶有用户尝试,到如今线上环境和私有化部署均有了越来越多的稳定用户. 随时近来 AI 大模型的火热,越来越多 ...
- 编写你的第一个 Django 应用程序,第6部分
本教程从教程 5 停止的地方开始.我们已经构建了一个经过测试的网络投票应用程序,现在我们将添加一个样式表和一个图像. 除了服务器生成的 HTML 之外,Web 应用程序通常需要提供呈现完整网页所需的其 ...
- OSPF各类LSA
一.域内路由 路由器将接口宣告进OSPF进程后,形成的链路状态放入1类LSA中,用于描述路由器自身的直连状态. 1. 区域0为骨干区域,非0为非骨干区域. 2. 骨干区域有且只能存在一个. 3. 非骨 ...
- 【高德地图】离线地图jsapi2.0 插件引用
当引用一个插件,但是这个插件没有时会报错: Uncaught TypeError: AMap.ControlBar is not a constructor 这里引用了罗盘这个插件 这时候需要翻看高德 ...
- 基于pandas的数据清洗 -- 缺失值(空值)的清洗
博客地址:https://www.cnblogs.com/zylyehuo/ 开发环境 anaconda 集成环境:集成好了数据分析和机器学习中所需要的全部环境 安装目录不可以有中文和特殊符号 jup ...
- Ubuntu 下查看当前用户
博客地址:https://www.cnblogs.com/zylyehuo/ 在终端执行以下命令 whoami
- 卸载和重装docker的方式
查看已安装的版本 yum list installed|grep docker 卸载 [root@localhost ~]# yum -y remove containerd.io.x86_64 [r ...