SMTP协议规范
SMTP是工作在两种情况:一种是从客户端传输到服务器的e – mail ,二是从一个服务器到另一个服务器
SMTP是请求/响应协议,命令和响应都是基于ASCII文本,和CR和LF结束。响应包括一个表示三位数的代码返回状态
在TCP协议25号端口监视器的SMTP连接请求
连接和发送过程:
建立连接的TCP
客户端发送HELO命令标识发件人它自己的身份,然后客户端发送MAIL命令服务器正确的希望就OK作为响应,准备接收
客户端发送RCPT命令,以确定收件人的电子邮件程序,你可以有多个RCPT愿意接受邮件到收件人的服务器
谈判结束,发送电子邮件,使用命令数据发送,表示输入的结束。一起发送
端的传输,用QUIT命令退出。
另外两个命令:
VRFY —用于验证给定的用户邮箱是否存在,并获得用户的详细信息。
EXPN —用于扩大邮件列表
邮件路由过程:
基于路由电子邮件的SMTP服务器程序收件人的域名服务DNS域。 SMTP服务器,在DNS路由基于电子邮件的MX记录, MX记录注册域名和相关的SMTP中继主机,属于域的电子邮件被发送到主机。
如果所接收SMTP服务器mail.abc.com一个信发送到shuser@sh.abc.com为:
的Sendmail请求DNS给主机sh.abc.com的CNAME记录,如果没有,如果CNAME shmail.abc.com的,再次请求
Shmail.abc.com CNAME记录,直到没有日期
假设是CNAME shmail.abc.com ,然后sendmail的request@abc.com中域的DNS给shmail.abc.com MX记录
Shmail MX 5 shmail.abc.com
10 shmail2.abc.com
sendmail的最后一个请求给shmail.abc.com DNS A记录的IP地址,如果返回值是1.2.3.4
Sendmail和1.2.3.4连接,这封信shuser@sh.abc.com发送到SMTP服务器1.2.3.4守护
SMTP基本命令集:
命令描述
HELO到服务器的用户身份,发送者能欺骗,说谎,但一般服务器可以检测
MAIL初始化消息发送邮件:
RCPT标识单个的邮件收件人,经常在背后MAIL命令,可以有多个RCPT TO :
数据在单个或多个RCPT命令,说已经确定的所有收件人,并初始化数据传输,到底。
VRFY用于验证指定的用户/邮箱是否存在,为了安全起见,服务器常禁止此命令
无论EXPN验证给定的邮箱列表中,展开的邮箱列表,也往往被禁用
“帮助查询命令支持服务器
NOOP无操作,在响应于一个“确定”的服务器
退出结束会话
RSET重置会话,传输被取消
MAIL FROM命令中指定的地址被称为信封地址,发送者并不需要他的地址是相同的
RCPT TO指定的收件人地址,称为信封来解决,实际到:是什么样的。
为什么没有RCPT CC和RCPT BCC : ?
接收机谈判都通过RCPT TO命令来实现,如果是BCC ,协商是在其他被删除的信封收件人接收发送,邮件的信封,信头和信体部分分为
信封,信封和消息:消息:完全不相干
evnelope提供的的SMTP后端服务器的主机,而从/到的消息是由用户提供的。有没有冒号区别
字母是怎样由信封部分检查是伪造的吗?
该协会接收线。现在SMTP电子邮件传输系统,除了考虑两个企业防火墙内部主机处理在外面的信封上,如果两个防火墙机器分别为A和B,但接收检查收到的信封后发现C.是假。
接收到的:线的主机和对应的IP地址是否如:
Receibed :从galangal.org ( turmeric.com [ 104.128.23.115 ]邮件。 Bieberdorf.edu ….
手动添加在后面接收到的行:
收稿日期:从galangal.org ( 104.128.23.115 )的邮件。 Bieberdorf.edu ( 8.8.5 )
收稿日期从lemongrass.org由galangal.org ( 8.7.3 )
收稿日期从graprao.com由lemongrass.org ( 8.6.4 )
阅读和此文章类似的: 特色 & 亮点