`
camel2099
  • 浏览: 44397 次
  • 性别: Icon_minigender_1
  • 来自: 上海
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

SMTP协议原始命令码和工作原理

阅读更多
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.9gcai.com收到一封信要发到shuser@9gcai.com:

a.Sendmail请求DNS给出主机sh.9gcai.com的CNAME记录,如有,假若CNAME到shmail.9gcai.com,则再次请求shmail.9gcai.com的CNAME记录,直到没有为止.
b.假定被CNAME到shmail.9gcai.com,然后sendmail请求@9gcai.com域的DNS给出shmail.9gcai.com的MX记录,
shmail MX 5 shmail.9gcai.com
10 shmail2.9gcai.com
c. Sendmail最后请求DNS给出shmail.9gcai.com的A记录,即IP地址,若返回值为1.2.3.4
d. Sendmail与1.2.3.4连接,传送这封给shuser@sh.9gcai.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 (9gcai.com [58.221.42.163] by mail .bieberdorf.edu....
c. 被人手动添加在最后面的received行:
Received: from 9gcai.com ([58.221.42.163]) by mail .bieberdorf.edu (8.8.5)
Received: from lemongrass.org by 9gcai.com (8.7.3)
Received: from graprao.com by lemongrass.org (8.6.4)

(文章来自:GCMail邮件服务器软件,http://9gcai.com/main/webbase/jishu/2011/0328/430.html)
0
0
分享到:
评论

相关推荐

    网络协议大全

    ARP协议 PPP(Point-to-Point Protocol点...SMTP协议原始命令码和工作原理 多协议标志交换(MPLS)基本原理 POP3 邮局协议-版本3 CIP 传输协议 802.1x协议解析 X.25 协议 XKMS协议介绍及其工作原理 技术简述

    SMTP邮件协议

    SMTP协议原始命令码和工作原理 1.SMTP是工作在两种情况下:一是电子邮件从客户机传输到服务器;二是从某一个服务器传输到另一个服务器; 2.SMTP是个请求/响应协议,命令和响应都是基于ASCII文本,并以CR和LF符结束...

    smtp协议的工作原理

    smtp协议的工作原理,很值得一看啊!写的很详细的

    SMTP协议工作原理及服务.docx

    SMTP协议工作原理及服务.docx

    邮件协议(POP3+SMTP)命令及响应码

    描述pop3和smtp的通信命令及各种响应码含义以及MIME的数据格式。

    C# 基于SMTP协议和SOCKET发送邮件及附件

    C# 基于SMTP协议和SOCKET发送邮件及附件。 在WIN7的VS2010环境下编译测试OK。

    基于SMTP协议的邮件发送客户端程序设计说明书

    通过对“基于SMTP协议的邮件发送客户端程序”的系统分析、系统设计、编码、调试等工作的实践,了解基于TCP/IP协议的网络编程的一般设计和实现思路,熟悉和掌握软件设计和实现的一般方法,深入了解邮件传输协议的基本...

    计算机网络课程设计报告:基于SMTP协议的模拟邮件系统

    本文是 基于SMTP协议的模拟邮件系统的 课程设计报告 全文包括:设计内容、需求分析、系统总体设计(系统功能模块设计、系统数据库总体设计、)、数据库设计、系统功能设计与实现、总结与反思(问题及解决问题、收获...

    易语言源码易语言简单SMTP协议源码.rar

    易语言源码易语言简单SMTP协议源码.rar 易语言源码易语言简单SMTP协议源码.rar 易语言源码易语言简单SMTP协议源码.rar 易语言源码易语言简单SMTP协议源码.rar 易语言源码易语言简单SMTP协议源码.rar 易语言源码...

    SMTP协议电子邮件传送剖析

    本文介绍了一种采用SMTP协议规范并通过直接使用SMTP协议命令而在程序中实现电子邮件传送的方法。并在VC++开发环境下给出了部分关键的实现代码。

    易语言简单SMTP协议

    易语言简单SMTP协议源码,简单SMTP协议,等待数据,发送字符,断开,BASE64编码

    smtp协议分析 实验报告

    网络协议分析 smtp协议分析实验报告

    SMTP协议分析.doc

    详细介绍了SMTP协议,对要做邮件发送或接收开发的朋友提供帮助

    基于SMTP协议和POP3协议的邮件收发客户端.7z.zip

    实验报告请私聊-升级版见其它资源 关于要求:编程实现通过用户界面,用户登录信箱认证过程(含base64方式...这意味着除了使用SMTP协议发送邮件外,还需设计使用POP3协议接收邮件,在接收的时候采用黑白名单过滤的功能。

    SMTP协议发邮件流程.pdf

    SMTP协议发邮件流程.pdfSMTP协议发邮件流程.pdfSMTP协议发邮件流程.pdfSMTP协议发邮件流程.pdfSMTP协议发邮件流程.pdfSMTP协议发邮件流程.pdf

    基于POP3、SMTP协议的MFC实现邮件客户端

    POP3: 1.支持本地缓存最新的3封邮件。 2.正常解析出收件人、发件人、主题、日期、邮件内容。 3.正常解析无格式纯文本,支持中文、英文和中英... SMTP: 1.支持发送中英文的邮件。 2.支持给多人发送邮件,每个收件人之

    基于邮件交换(MX)与SMTP协议发送邮件

    基于邮件交换(MX)与SMTP协议发送邮件,可以无须SMTP服务器中转直接将E-Mail电子邮件发送到对方邮箱,代码中提供了网卡信息获取类,可以获取本机IP地址、子网掩码、DNS、Wins、网卡MAC地址等相关信息;还提供了SMTP协议...

    C# SMTP协议 发送邮件的实例

    C# 使用SMTP协议 根据发件人邮箱服务器名和邮箱名给收件人 发送邮件

    易语言简单SMTP协议源码

    易语言简单SMTP协议源码。@易语言源码分享站。

Global site tag (gtag.js) - Google Analytics