SMTP协议原始命令码和工作原理_PHP
SMTP
http://www.linuxforum.net Jephe Wu (2001-04-21 18:16:42)1.SMTP是工作在两种情况下:一是电子邮件从客户机传输到服务器;二是从某一个服务器传输到另一个
服务器
2.SMTP是个请求/响应协议,命令和响应都是基于ASCII文本,并以CR和LF符结束。响应包括一个表示返
回状态的三位数字代码
3.SMTP在TCP协议25号端口监听连接请求
4.连接和发送过程:
a.建立TCP连接
b.客户端发送HELO命令以标识发件人自己的身份,然后客户端发送MAIL命令
服务器端正希望以OK作为响应,表明准备接收
c.客户端发送RCPT命令,以标识该电子邮件的计划接收人,可以有多个RCPT行
服务器端则表示是否愿意为收件人接受邮件
d.协商结束,发送邮件,用命令DATA发送
e. 以.表示结束输入内容一起发送出去
f.结束此次发送,用QUIT命令退出。
5.另外两个命令:
VRFY---用于验证给定的用户邮箱是否存在,以及接收关于该用户的详细信息。
EXPN---用于扩充邮件列表。
6.邮件路由过程:
SMTP服务器基于‘域名服务DNS中计划收件人的域名来路由电子邮件。SMTP服务器基于DNS中的MX记录
来路由电子邮件,MX记录注册了域名和相关的SMTP中继主机,属于该域的电子邮件都应向该主机发送。
若SMTP服务器mail.abc.com收到一封信要发到shuser@sh.abc.com:
a.Sendmail请求DNS给出主机sh.abc.com的CNAME记录,如有,假若CNAME到shmail.abc.com,则再次
请求shmail.abc.com的CNAME记录,直到没有为止
b.假定被CNAME到shmail.abc.com,然后sendmail请求@abc.com域的DNS给出shmail.abc.com的MX记录,
shmail MX 5 shmail.abc.com
10 shmail2.abc.com
c. Sendmail最后请求DNS给出shmail.abc.com的A记录,即IP地址,若返回值为1.2.3.4
d. Sendmail与1.2.3.4连接,传送这封给shuser@sh.abc.com的信到1.2.3.4这台服务器的SMTP后台程序
7.SMTP基本命令集:
命令 描述
------------------------------
HELO 向服务器标识用户身份
发送者能欺骗,说谎,但一般情况下服务器都能检测到。
MAIL 初始化邮件传输
mail from:
RCPT 标识单个的邮件接收人;常在MAIL命令后面
可有多个rcpt to:
DATA 在单个或多个RCPT命令后,表示所有的邮件接收人已标识,并初始化数据传输,以.结束。
VRFY 用于验证指定的用户/邮箱是否存在;由于安全方面的原因,服务器常禁止此命令
EXPN 验证给定的邮箱列表是否存在,扩充邮箱列表,也常被禁用
HELP 查询服务器支持什么命令
NOOP 无操作,服务器应响应OK
QUIT 结束会话
RSET 重置会话,当前传输被取消
--------------------------------
8. MAIL FROM命令中指定的地址是称作 envelope from地址,不需要和发送者自己的地址是一致的。
RCPT TO 与之等同,指明的接收者地址称为envelope to地址,而与实际的to:行是什么无关。
9.为什么没有RCPT CC和RCPT BCC:?
所有的接收者协商都通过RCPT TO命令来实现,如果是BCC,则协商发送后在对方接收时被删掉信封接收者
10.邮件被分为信封部分,信头部分和信体部分
envelope from, envelope to 与message from:, message to:完全不相干。
evnelope是由服务器主机间SMTP后台提供的,而message from/to是由用户提供的。有无冒号也是区别。
11. 怎样由信封部分检查是否一封信是否是伪造的?
a. received行的关联性。
现在的SMTP邮件传输系统,在信封部分除了两端的内部主机处理的之个,考虑两个公司防火墙之间
的部分,若两台防火墙机器分别为A和B,但接收者检查信封received:行时发现经过了C.则是伪造的。
b. received:行中的主机和IP地址对是否对应如:
Receibed: from galangal.org (turmeric.com [104.128.23.115] by mail .bieberdorf.edu....
c. 被人手动添加在最后面的received行:
Received: from galangal.org ([104.128.23.115]) by mail .bieberdorf.edu (8.8.5)
Received: from lemongrass.org by galangal.org (8.7.3)
Received: from graprao.com by lemongrass.org (8.6.4)
Jephe Wu

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

通过sudo命令,用户可以在提升权限模式下运行命令,而无需切换到超级用户模式。本文将介绍如何在Windows系统中模拟类似于sudo命令的功能。什么是数道司令部?Sudo(“超级用户do”的缩写)是一种命令行工具,允许基于Unix的操作系统(如Linux和MacOS)的用户以提升的权限执行命令,这些权限通常是管理员所拥有的。在Windows11/10中运行SUDO命令然而,随着最新发布的Windows11Insider预览版推出,Windows用户现在也可以体验到这一项功能。这一新功能使用户能够

本文将向读者介绍在Win11系统中如何使用命令提示符(CommandPrompt)来查找网络适配器的物理地址(MAC地址)。MAC地址是网络接口卡(NIC)的唯一标识符,它在网络通信中扮演着重要角色。通过命令提示符,用户可以轻松地获取到当前计算机上所有网络适配器的MAC地址信息,这对于网络故障排查、配置网络设置等任务非常有帮助。方法一:使用「命令提示符」1、按【Win+X】组合键,或【右键】点击任务栏上的【Windows徽标】,在打开的菜单项中,选择【运行】;2、运行窗口,输入【cmd】命令,然

在抖音上,用户不仅可以分享自己的生活点滴和才艺,还可以和其他用户互动交流。在这个过程中,有时候我们需要向其他用户发送文件,比如图片、视频等。那么,在抖音上如何发给别人文件呢?一、抖音上如何发给别人文件?1.打开抖音,进入你想要发送文件的聊天界面。2.点击聊天界面中的“+”号,选择“文件”。3.在文件选项中,你可以选择发送图片、视频、音频等文件。选择你想要发送的文件后,点击“发送”。4.等待对方接受你的文件,一旦对方接受,文件就会传输成功。二、抖音上发给别人文件怎么删除?1.打开抖音,进入你发送文

Win11系统中,可以通过命令来启用或禁用Hyper-V增强会话模式。本文将介绍如何使用命令来进行操作,帮助用户更好地管理和控制系统中的Hyper-V功能。Hyper-V是Microsoft提供的一种虚拟化技术,它内置在WindowsServer和Windows10、11(家庭版除外)中,允许用户在Windows系统中运行虚拟操作系统。虽然虚拟机与宿主机操作系统相隔离,但通过设置,它们依然能够使用宿主机的资源,如声卡和存储设备等。其中一个关键设置就是启用「增强会话模式」。增强会话模式是Hyper

DHCP中继的作用是将接收到的DHCP数据包转发到网络上的另一个DHCP服务器,即使这两个服务器位于不同的子网中。通过使用DHCP中继,您可以实现在网络中心部署一个集中式的DHCP服务器,并利用它为所有网络子网/VLAN动态分配IP地址。Dnsmasq是一种常用的DNS和DHCP协议服务器,可以配置为DHCP中继服务器,以帮助管理网络中的动态主机配置。在本文中,我们将向您展示如何将dnsmasq配置为DHCP中继服务器。内容主题:网络拓扑在DHCP中继上配置静态IP地址集中式DHCP服务器上的D

在网络数据传输中,IP代理服务器扮演着重要的角色,能够帮助用户隐藏真实IP地址,保护隐私、提升访问速度等。在本篇文章中,将介绍如何用PHP构建IP代理服务器的最佳实践指南,并提供具体的代码示例。什么是IP代理服务器?IP代理服务器是一种位于用户与目标服务器之间的中间服务器,它充当用户与目标服务器之间的中转站,将用户的请求和响应进行转发。通过使用IP代理服务器

一、概述sar命令通过从系统活动中收集的数据来展示系统的使用情况报告。这些报告由不同部分组成,每个部分都包含数据类型和收集数据的时间。sar命令的默认模式显示访问CPU的各种资源(如用户、系统、I/O调度等)在不同时间增量下的CPU使用率。此外,它还显示给定时间段内空闲CPU的百分比。报告底部列出了每个数据点的平均值。sar默认每10分钟报告一次收集的数据,但您可以使用各种选项来筛选和调整这些报告。与uptime命令类似,sar命令也可帮助您监测CPU的负载情况。通过sar,您可以了解过度负载发

nohup的作用及原理解析在Unix和类Unix操作系统中,nohup是一个常用的命令,用于在后台运行命令,即便用户退出当前会话或关闭终端窗口,命令仍然能够继续执行。在本文中,我们将详细解析nohup命令的作用和原理。一、nohup的作用后台运行命令:通过nohup命令,我们可以让需要长时间运行的命令在后台持续执行,而不受用户退出终端会话的影响。这在需要运行
