邮件基础之 -- SMTP协议

应用层——电子邮件(SMTP、POP3、IMAP) 计算机网络——应用层电子邮件详解 阅读详情

SMTP协议

1. 概念

​ SMTP是采用C/S模式,专用于电子邮件的发送,规定了发信人把邮件发送到收信人的电子邮箱的全过程,SMTP客户与SMTP服务器之间是如何交换信息的,规定了SMTP会话的过程。用户直接使用的是用于编写和发送的客户端软件,一般情况下SMTP服务器运行在远程站点上。客户/服务器之间的通信是通过TCP/IP协议进行的。

​ SMTP的命令和相应都是基于文本,以命令行为单位,换行符为GR/LF。响应信息一般只有一行,由一个三位数的代码开始,后面可附很简单的文字说明。

2. 基本流程

1)建立TCP连接

2)客户端发送HELO命令以标识发件人自己的身份,然后客户端发送MAIL命令;

3)客户端发送RCPT命令,以标识该电子邮件计划接收人,可以有多个RCPT行;

4)协商结束,发送邮件,用命令DATA发送;

5)以表示结束输入内容一起发送出去;

6)结束此次发送,用QUIT命令退出。

举列子

C: telent SMTP.163.com 25  //以telenet方式连接163邮件服务器  
S: 220 163.com Anti-spam GT for Coremail System //220为响应数字,其后的为欢迎信息  
C: HELO SMTP.163.com //除了HELO所具有的功能外,EHLO主要用来查询服务器支持的扩充功能   
S: 250-mail  
S: 250-AUTH LOGIN PLAIN  
S: 250-AUTH=LOGIN PLAIN  
S: 250 8BITMIME //最后一个响应数字应答码之后跟的是一个空格,而不是'-'   
C: AUTH LOGIN   //请求认证  
S: 334 dxNlcm5hbWU6  //服务器的响应——经过base64编码了的“Username”=  
C: Y29zdGFAYW1heGl0Lm5ldA==  //发送经过BASE64编码了的用户名  
S: 334 UGFzc3dvcmQ6  //经过BASE64编码了的"Password:"=  
C: MTk4MjIxNA==  //客户端发送的经过BASE64编码了的密码  
S: 235 auth successfully  //认证成功   
C: MAIL FROM: bripengandre@163.com  //发送者邮箱  
S: 250 … .  //“…”代表省略了一些可读信息  
C: RCPT TO: bripengandre@smail.hust.edu.cn //接收者邮箱  
S: 250 … .    // “…”代表省略了一些可读信息  
C: DATA //请求发送数据  
S: 354 Enter mail, end with "." on a line by itself  
C: Enjoy Protocol Studing  
C: .  
S: 250 Message sent  
C: QUIT //退出连接   
S: 221 Bye  

流程:

这里写图片描述

3. 邮件路由的过程

​ SMTP服务器是基于“域名服务DNS中计划收件人的域名来路由电子邮件”,SMTP服务器基于DNS中的MX记录来路由电子邮件,MX记录注册了域名和相关的SMTP中的主机,属于该域的电子邮件都应向该主机发送。

​ 若SMTP服务器mail.@qq.com收到信件要发送到mail.@126.com

1)Sendmail请求DNS给出主机sh.abc.com的CNAME记录,如有,假若CNAME到shmail.abc.com,则再次,请求shmail.abc.com的CNAME记录,直到没有为止;
2)假定被CNAME到shmail.abc.com,然后sendmail请求@abc.com域的DNS给出shmail.abc.com的MX记录;
   shmail    MX   5   shmail.abc.com
              10    shmail2.abc.com
3)Sendmail最后请求DNS给出shmail.abc.com的A记录,即IP地址,若返回值为1.2.3.4 ;
4)Sendmail与1.2.3.4连接,传送这封给shuser@sh.abc.com的信到1.2.3.4这台服务器的SMTP后台程序 。

4. SMTP常用的命令

SMTP命令不区分大小写,参数区分,常用命令如下:

1)HELO ---- 向服务器标识用户身份发送者能欺骗,说谎,但一般情况下服务器能检测到;

2)RCPT TO ---- 用来标志邮件接收者的地址,常用在MAIL FROM后,可以后多个RCPY TO接收地址;

3)DATA ---- 将之后的数据作为数据发送,以标志数据的结尾;

4)REAT ---- 重置会话,当前传输被取消;

5)NOOP ---- 要求服务器返回OK应答,一般用作测试;

6)QUIT ---- 结束会话;

7)VRFY ---- 验证指定的邮箱是否存在,由于安全方面原因,服务器大多禁止此命令;

8)EXPN ---- 验证给定的邮箱列表是否存在,由于安全方面的原因,服务器大多禁止此命令;

8)HELP ---- 查询服务器支持什么命令。

5. SMTP常用的响应

501——参数格式错误
502——命令不可实现
503——错误的命令序列
504——命令参数不可实现
211——系统状态或系统帮助响应
214——帮助信息
220——服务器就绪
221——服务关闭
421——服务器未就绪,关闭传输信道
250——要求的邮件操作完成
251——用户非本地,将转发向
450——要求的邮件操作未完成,邮箱不可用
550——要求的邮件操作未完成,邮箱不可用
451——放弃要求的操作,处理过程中出错
551——用户非本地,请尝试
452——系统存储不足,要求的操作未执行
552——过量的存储分配,要求的操作未执行
553——邮箱名不可用,要求的操作未执行
354——开始邮件输入,以“.”结束
554——操作失败

6. 使用SMTP的必要性

​ 一般的PC资源不够,处理能力不够,不可能全天候地连接在因特网上来收发邮件。所以使用SMTP服务器,可以让多个用户共用服务器,有效地降低了成本。

7. SMTP和邮件格式的关系

​ 可以用一个比较形象的例子来说明:甲与乙书信来往,甲通过邮局向乙发送信件,邮局见转交邮件可看成使用了SMTP协议,至于书信的格式则会因为地区习惯等的不同而不同,这个书信格式可看成是邮件格式的标准。

8. 浏览器发送邮件使用的协议

浏览器发送邮件的过程:
例如:bripengandre@126.com可通过登陆www.126.com来收发邮件 。
bripengandre@126.com在www.126.com提供的邮件页面上填写的相应信息(如发信人邮箱、收信人邮箱等),通过http协议被提交给126服务器;126服务器根据这些信息组装一封符合邮件规范的邮件(就像用户代理一样);然后smtp.126.com通过SMTP协议将这封邮件发送到接收端邮件服务器。
由此可知,浏览器发送邮件只是用户代理的功能直接放到邮件服务器上去做了,至于邮件服务器见发送邮件仍然采用的是SMTP协议。

范的邮件(就像用户代理一样);然后smtp.126.com通过SMTP协议将这封邮件发送到接收端邮件服务器。
由此可知,浏览器发送邮件只是用户代理的功能直接放到邮件服务器上去做了,至于邮件服务器见发送邮件仍然采用的是SMTP协议。

SMTP协议总结 阅读详情

相关推荐

深入理解SMTP协议之邮件客户端

本文将使用Python从零实现一个简易的邮件客户端,通过本文你将对SMTP协议有更深入的了解,同时掌握使用Python实现标准协议的经验。 我们将开发一个简单的邮件客户端,将邮件发送给任意收件人。我们的客户端将需要连接到邮件服务器(QQ邮件服务器),使用SMTP协议与邮件服务器进行对话,并向邮件服务器发送电子邮件。 Python提供了一个名为smtplib的模块,它内置了使用SMTP协议发送邮件的方法。但是我们不会使用此模块,因为它隐藏了SMTP和套接字编程的细节,我们将完全从零开始实现自己的邮件客户端。

weixin_42687560的博客 2737

SMTP协议:邮件传输的关键协议详解

SMTP协议:邮件传输的关键协议详解

深耕嵌入式领用多年, 致力于分享嵌入式领域技术! 4579

在telnet登录并使用SMTP和POP收发邮件(QQ邮箱)

目录一、什么是POP3、SMTP和IMAP?二、使用SMTP协议手工发送邮件1.开启QQ邮箱的SMTP服务2.开启TELNET客户端3.使用SMTP协议手工发送邮件三、POP查看邮件四、总结参考资料 一、什么是POP3、SMTP和IMAP? POP3 POP3是Post Office Protocol 3的简称,即邮局协议的第3个版本,它规定怎样将个人计算机连接到Internet的邮件服务器和下载电子邮件的电子协议。它是因特网电子邮件的第一个离线协议标准,POP3允许用户从服务器上把邮件存储到本地主机(即自

weixin_46129506的博客 4447

计算机网络二:应用层

计算机网络

weixin_41402069的博客 5418

C语言SMTP邮件发送功能实现教程与实践

SMTP协议定义了邮件客户端和邮件服务器之间,以及邮件服务器之间的邮件交换规范。SMTP服务器的主要作用是接收从客户端发来的邮件,并负责将邮件转发到目标邮箱。这使得电子邮件能够跨越互联网的各个角落。TCP/IP(传输控制协议/互联网协议)是一组用于数据传输的协议,它定义了如何在互联网上进行通信。协议栈按照OSI模型可以划分为四层:链路层、网络层、传输层和应用层。每一层都有其特定的功能和协议,共同确保数据从源点传输到终点。链路层负责将数据帧在两个网络节点之间进行传输。

weixin_34620658的博客 762

波分复用-Zblock仿真

Z-BLOCK是一种用于光通信模块的光学元件,其核心结构是在玻璃块一侧贴有4个特定波长滤光片,另一侧镀有反射膜和增透膜。光信号在内部呈现Z字形反射路径,实现波长分离。文章以可见光LED为例,在ZEMAX中演示了非序列模式下的建模过程,重点介绍了滤光片和膜层的参数设置方法。需要注意的是,入射角度需根据玻璃折射率、通道高度和厚度精确计算,否则可能导致光泄漏。该建模方法同样适用于光通信中的光纤激光器系统。

Zhaxibamao的博客 1746

简单邮件传输协议 (SMTP) 全面剖析:基础、技术与 2025 年发展趋势​

简单邮件传输协议 (Simple Mail Transfer Protocol,SMTP) 是一种用于在互联网上发送电子邮件的标准协议,它是互联网电子邮件系统中重要的组成部分。作为电子邮件发送的基础,SMTP 负责将邮件从发件人传输到收件人,并通过邮件服务器之间的协作,确保邮件能够正确地路由到目标收件人。SMTP 协议采用客户端 - 服务器模型,邮件客户端作为客户端,邮件服务器作为服务器,通过 TCP 连接进行通信。SMTP 的主要功能包括三个方面:邮件发送、邮件路由和邮件存储。

lxadccs的专栏 1927

MPC模型预测控制实战:从理论到代码实现(Python示例)

本文详细介绍了MPC模型预测控制的实战应用,从理论到Python代码实现。通过构建系统模型、预测方程、优化问题及约束处理,展示了如何实现一个完整的MPC控制器。文章还提供了水箱液位控制的应用案例,帮助读者掌握MPC在工业控制中的实际应用。

weixin_42653691的博客 460

邮件发送基础:深入SMTP协议、配置邮件服务器及Python实现

SMTP(Simple Mail Transfer Protocol)即简单邮件传输协议,是一组用于由源地址到目的地址传送邮件的规则。它属于TCP/IP协议簇,帮助每台计算机在发送或中转信件时找到下一个目的地。SMTP协议的主要功能是控制信件的中转方式,确保邮件能够准确无误地从发件人邮箱传输到收件人邮箱。通过本文的介绍,你应该已经掌握了SMTP协议的基础知识、邮件服务器的配置方法,以及如何使用Python的smtplib和email模块发送简单邮件、HTML格式邮件和带附件的邮件。希望这些信息对你有所帮助。

这家伙很懒,什么都没有留下 2592

交叉编译Qt6.5.3(RK3568开发板)

注意,如果使用其它版本的交叉编译器的话,请确保你的交叉编译器能够支持 C++17标准。为确保后续交叉编译没问题,需要确保开发板使用的GLIBC版本不小于2.34版本。到 linaro 网站上下载交叉编译工具,我下载的是 gcc-linaro-11.3.1-2022.06-x86_64_aarch64-linux-gnu.tar.xz。安装 CMake ,最低要求3.16版本,如果要静态编译,需要3.21及以上版本。我使用的3.27版本。:指定为最后交叉编译后的Qt6.5.3库的安装目录。

m0_46309425的博客 5102

AST实战:解密Akamai混淆JS代码的完整流程

本文详细解析了如何使用AST技术解密Akamai混淆的JS代码,包括定位关键代码、AST解混淆实战步骤及常见问题解决方案。通过实际案例演示了从混淆代码到清晰逻辑的完整处理流程,并提供了工具推荐和法律合规建议,帮助开发者有效应对反爬虫技术。

weixin_33725722的博客 315

【RL-TCPnet网络教程】第33章 SMTP简单邮件传输协议基础知识

第33章      SMTP简单邮件传输协议基础知识 本章节为大家讲解SMTP(Simple Mail Transfer Protocol,简单邮件传输协议)的基础知识,方便后面章节的实战操作。 (本章的知识点主要整理自网络) 33.1  初学者重要提示 33.2  SMTP基础知识参考资料 33.3  SMTP基础知识点 33.4  总结     33.1  初学者重要提示 ...

Simon223的博客 1107

使用pytorch构建LSTM_AE模型的两种方式

2.基本LSTM_Unit计算——基本LSTM_AE结构 3.自定义LSTM_Unit计算——自定义LSTM_AE结构 1.LSTM-Encoder-Decoder模型结构及简要解析 图基本lstm计算单元

qq_37840762的博客 7274

udp协议如何实现服务器下发指令,网络协议基础知识 SMTP协议和UDP协议邮件服务器 -电脑资料...

SMTP协议的命令和应答从前面的通讯模型可以看出SMTP协议在发送SMTP和接收SMTP之间的会话是靠发送SMTP的SMTP命令和接收SMTP反馈的应答来完成的,SMTP命令命令说明HELLO<domain><CRLF>识别发送方到接收SMTP的一个HELLO命令MAILFROM:<reverse-path><CRLF><reverse-path>为发送者地址。此命令告诉接收方一个新邮件发送的开始...

weixin_33672838的博客 669

【FPGA教程案例55】深度学习案例2——基于FPGA的CNN卷积神经网络之ReLu激活层verilog实现

在本课程中,我们将对CNN的ReLu函数模块的FPGA实现做详细的介绍和学习。从仿真结果可知,通过Rule激活函数之后,小于的输入数据输出为0,否则输出是输入本身。,我们对CNN的基本原理有了初步认识。ReLu函数具备如下优缺点。按照课程1相似的操作方式。

FPGA/MATLAB学习教程/源码/项目合作开发 2693

用 YOLOv11‑Seg 做工地实例分割:从 0 起步到效果调优,真香!

这不是一篇“官方文档翻译”,而是一篇。

weixin_43199439的博客 776

SMTP协议中基础邮件传输所需的往返时间分析

在计算延迟时,我们是否应该将每一个SMTP命令-回复对(HELO, MAIL FROM, RCPT TO, DATA, 消息体终止符)视为一个独立的RTT,从而总共需要大约6次RTT?还是应该将连接建立后的整个SMTP事务视为一次RTT,总共需要2次RTT?用户代理到其邮件服务器的传输延迟可忽略不计,唯一可测量的延迟是两个邮件服务器之间的往返时间(20毫秒)。然而,我怀疑我应该使用一个模型,即连接建立后的SMTP命令被分组到一次“SMTP事务”RTT中。查看SMTP对话,每一个命令-回复对都是顺序执行的。

分享技术点滴 401

第 1 章 Prometheus 监控 | Prometheus 入门

了解 Prometheus 监控系统,学会安装及了解页面功能。

甘蓝的专栏 486

【RL-TCPnet网络教程】第33章 SMTP简单邮件传输协议基础知识

第33章 SMTP简单邮件传输协议基础知识 本章节为大家讲解SMTP(Simple Mail Transfer Protocol,简单邮件传输协议)的基础知识,方便后面章节的实战操作。 (本章的知识点主要整理自网络) 33.1 初学者重要提示 33.2 SMTP基础知识参考资料 33.3 SMTP基础知识点 33.4 总结 33.1 初学者...

weixin_30815427的博客 569

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

SMTP:简单邮件传输协议

  (SMTP:Simple Mail Transfer Protocol)即简单邮件传输协议,它是一组用于由源地址到目的地址传送邮件的规则,由它来控制信件的中转方式。SMTP协议属于TCP/IP协议族,它帮助每台计算机在发送或中转信件时找到下一个目的地。通过SMTP协议所指定的服务器,我们就可以把E-mail寄到收信人的服务器上了,整个过程只要几分钟。SMTP服务器则是遵循SMTP协议的发送邮件

regina的专栏 2646

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

邮件开发的基础协议

前言 邮箱对我们来说是再熟悉不过了,它与我们的生活、工作紧密联系在一起:登录、注册、往来沟通…无处不在; 邮箱的使用很便捷,可是邮箱是如何传输、投递信息呢?电子邮件协议 电子邮件协议主要包括IMAP、POP3、SMTP协议; 这篇文章将给大家介绍一下邮件所用的协议、协议格式标准以及不同协议之间的区别与联系; SMTP SMTP的全称是Simple Mail Transfer Protocol即简单邮件传输协议,在1982年正式提出。它是一组用于从源地址到目的地址传输邮件的规范,通过它来控制邮件的中转.

Jacklin 514

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

邮件服务器SMTP概述

邮件服务器 最近由于涉及到邮件服务器相关内容的工作,并且需要进行部分的协议转发的工作故了解一下邮件服务器的协议。当前选择应用较为广泛的SMTP的邮件协议。 SMTP协议概述 SMTP全称是Simple Mail Transfer Protocol,最近的协议定稿是rfc5321,根据文档的描述,基础的设计方案如下; 通过SMTP客户端发送邮件信息到一个或者多个SMTP服务端,并记录发送的状态结果。SMTP客户端一旦确定目标的方式域,确定要向其复制副本的SMTP服务器的身份一条消息将被传输,然后执行该传输。

qq_33339479的博客 4490

使用java语言基于SMTP协议手写邮件客户端

使用java语言基于SMTP协议手写邮件客户端 1. 说明 电子邮件是互联网上常见的应用,他是互联网早期的产品,直至今日依然受到广大用户的喜爱(在中国可能因为文化背景不同,电子邮件只在办公的时候常用)。 电子邮件系统由以下几个部分组成: 用户代理 邮件服务器 邮件传输协议 总所周知,目前市面上流行的电子邮箱有qq邮箱,163邮箱等,我们可以去申请一个qq邮箱或者163邮箱,原因是因为...

weixin_30515513的博客 667

基于SMTP实现简单收发邮件

目录标题一、SMTP二、实现命令效果三、总结四、参考 一、SMTP SMTP是一种提供可靠且有效的电子邮件传输的协议。SMTP是建立在FTP文件传输服务上的一种邮件服务,主要用于系统之间的邮件信息传递,并提供有关来信的通知。SMTP独立于特定的传输子系统,且只需要可靠有序的数据流信道支持,SMTP的重要特性之一是其能跨越网络传输邮件,即“SMTP邮件中继”。使用SMTP,可实现相同网络处理进程之间的邮件传输,也可通过中继器或网关实现某处理进程与其他网络之间的邮件传输。 二、实现 命令 1.连接服务器 tel

qq_46132489的博客 1314

smtp是什么邮件的协议

smtp是电子邮件传输的协议。SMTP是建立在FTP文件传输服务上的一种邮件服务,主要用于系统之间的邮件信息传递,并提供有关来信的通知。SMTP协议属于TCP/IP协议族,它帮助每台计算机在发送或中转信件时找到下一个目的地。 SMTP是一种提供可靠且有效的电子邮件传输的协议。SMTP是建立在FTP文件传输服务上的一种邮件服务,主要用于系统之间的邮件信息传递,并提供有关来信的通知。 SMTP独立于特定的传输子系统,且只需要可靠有序的数据流信道支持,SMTP的重要特性之一是其能跨越网络传输邮件,即“SMTP邮件

kexin178的博客 1219
上一篇: 邮箱系统之 -- 常规邮件基础
下一篇: 网络基础
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

峰宝宝守护。

乐已忘忧,心旷神愉

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值