SMTP-简单邮件传输协议(SimpleMailTransferProtocol),是定义邮件传输的协议,它是基于TCP服务的应用层协议,由RFC821所定义。SMTP协议规定的命令是以明文方式进行的。为了说明SMTP的工作原理,我们以向163发送邮件为实例进行说明。
在linux环境下,使用"telnet smtp.163. com 25"连接smtp.163. com的25号端口(SMTP的标准服务端口);在windows下使用telnet程序,远程主机指定为smtp.163. com,而端口号指定为25,然后连接smtp.163. com:交互过程如下:
[lix@nslix]$telnet smtp.163. com 25
220 163 .com Anti-spam GT for Coremail System (163com[071018])
HELO smtp.163 .com
250 OK
auth login
334 dXNlcm5hbWU6
USER base64加密后的用户名
334 UGFzc3dvcmQ6
PASS base64加密后的密码
235 Authentication successful
MAILFROM:XXX@163 .COM
250 Mail OK
RCPTTO:XXX@163 .COM
250 Mail OK
DATA
354 End data with .
QUIT250 Mail OK queued as smtp5,D9GowLArizfIFTpIxFX8AA==.41385S2 1211766217
HELO是客户向对方邮件服务器发出的标识自己的身份的命令,这里假设发送者为ideal;MAILFROM命令用来表示发送者的邮件地址;RCPTTO:标识接收者的邮件地址,这里表示希望发送邮件给XXX@163. COM,如果邮件接收者不是本地用户,例如RCPTTO:ideal,则说明希望对方邮件服务器为自己转发(Relay)邮件,若该机器允许转发这样的邮件,则表示该邮件服务器是OPENRELAY的,否则说明该服务器不允许RELAY;DATA表示下面是邮件的数据部分,输入完毕以后,以一个"."开始的行作为数据部分的结束标识;QUIT表示退出这次会话,结束邮件发送。
这就是一个简单的发送邮件的会话过程,其实当使用outlookexpress等客户软件发送时,后台进行的交互也是这样的,当然,SMTP协议为了处理复杂的邮件发送情况如附件等等,定义了很多的命令及规定,具体可以通过阅读RFC821来获得。
当你的一个朋友向你发送邮件时,他的邮件服务器和你的邮件服务器通过SMTP协议通信,将邮件传递给你邮件地址所指示的邮件服务器上(这里假设你的本地邮件服务器是Linux系统),若你通过telnet协议直接登录到邮件服务器上,则可以使用mail等客户软件直接阅读邮件,但是若你希望使用本地的MUA(MailUserAgent,如outlookexpress等客户软件)来阅读邮件,则本地客户端通过POP3或IMAP协议与邮件服务器交互,将邮件信息传递到客户端(如:win98系统)。
如果你向你的朋友回复一封信件时,你所使用的MUA也是通过SMTP协议与邮件服务(一般为发送邮件地址对应的email地址)器通信,指示其希望邮件服务器帮助转发一封邮件到你朋友的邮件地址指定的邮件服务器中。若本地邮件服务器允许你通过它转发邮件,则服务器通过SMTP协议发送邮件到对方的邮件服务器。这就是接受和发送邮件的全部过程。
本文由专业服务器托管——TOP云(zuntop.com)科技(http://www.zuntop.com)提供。
大数据将对企业网站的搜索引擎优化产生重大影响。人们需要了解更多关于大数据如...
服务器迁移中心SMC(Server Migration Center)是阿里云自主研发的迁移平台,可...
弹性高性能计算E-HPC(Elastic High Performance Computing)是阿里云提供的性能...
不过由于目前在国内, 服务器托管 业务对于大多数人来说,还是很陌生的领域,甚...
2015年2月份,谷歌击败了亚马逊等众多竞争对手,以2500万美元(约1.56亿元)的价...
BGP 机房介绍: BGP (边界网关协议)主要用于互联网AS(自治系统)之间的互联,BGP...
来源 | 阿里巴巴云原生公众号 阿里巴巴开源的混沌工程项目 ChaosBlade 通过 CNCF...
宝塔面板 怎么链接 虚拟主机 ?宝塔面板是无法链接虚拟主机的。宝塔面板是一款 ...
本文转载自微信公众号「区块链研究实验室」,作者链三丰 。转载本文请联系区块链...
1. 接口描述 接口请求域名: tke.tencentcloudapi.com 。 集群的密钥信息 默认接...