欢迎来到天天文库
浏览记录
ID:5423644
大小:848.00 KB
页数:27页
时间:2017-11-12
《smtp、pop3协议及实现》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、SMTP项目概要设计简单邮件传输协议SMTP简单邮件传输协议(SimpleMailTransferProtocol,SMTP)是事实上的在Internet传输email的标准。SMTP是一个相对简单的基于文本的协议。在其之上指定了一条消息的一个或多个接收者(在大多数情况下被确认是存在的),然后消息文本会被传输。1.SMTP的最大特点:简单、直观只规定发送程序和接收程序之间的命令和应答命令和响应都是可读的ASCII字符串2.SMTP邮件传输采用客户—服务器模式3.SMTP服务器在TCP的25端口守候4.SMTP协议是一个严格的锁步协议常用的SMTP命令常用的S
2、MTP响应SMTP响应以3位数字开始,后面跟有该响应的具体描述SMTP邮件传递过程连接建立阶段邮件传递阶段连接关闭阶段SMTP邮件传递过程1、与SMTP服务器建立TCP连接.......................服务器地址通常为smtp.**.com/net端口25(记住所有命令以一个CRLF结束)2、与服务器握手..................................HELO+服务器地址名称+CRLF3、AUTHLOGIN....................................请求登录4、用户名..............
3、..........................base64编码的用户名5、密码..........................................base64编码的密码6、MAILFROM:<>.................................输入帐户的正确的邮件地址,这里于这帐户信息不一致会导致服务器拒绝7、RCPTTO:<>....................................接收者,多个接收者多次调用该命令8、DATA........................................
4、..即将输入邮件正文依次输入TO:;FROM:;SUBJECT:;空一行正文;隔行以.结束9、QUIT..........................................退出连接状态SMTP邮件具体传送过程用telnet连接SMTP服务器最直观的方式是用telnet连接到SMTP的服务器,看如何利用命令操作SMTP。打开终端:(C:client,S:Server)C:telnetsmtp.163.com25(连接到163的SMTP服务器,协议规定SMTP服务器的端口号为25)S:Trying202.108.5.83...Connectedto
5、smtp.163.split.netease.com.Escapecharacteris'^]'.220163.comAnti-spamGTforCoremailSystem(163com[071018])(220表示连接成功C:HELOsmtp.163.com(协议规定的握手过程,格式为HELO+服务器名称)S:250OK(250表示握手成功)C:AUTHLOGIN(AUTHLOGIN是用户登录命令)S:334dXNlcm5hbWU6(334表示服务器接受)C:dG9tb*****FpbA==(base64编码后的用户名)S:334UGFzc3dvcmQ6
6、(334表示接受)C:********aXZldXA=(base64编码后的密码)SMTP邮件具体传送过程S:235Authenticationsuccessful(235登录成功)C:MAILFROM:(MAILFROM:<>格式,这里要求必须是完全正确的发送者邮箱S:250MailOK(250系统常用确认信息)C:RCPTTO:接收者邮箱S:250MailOKC:DATA(DATA明令表示以下为邮件正文)S:354Enddatawith.C:
7、TO:11@11接收方地址FROM:22@22发送者地址SUBJECT:TESTMAILSMTP(邮件主题)helloworld(空一行写邮件正文).(正文以.结束)S:250MailOKqueuedassmtp3,DdGowLBLAjqD6_JIg1hfBA==.63235S21223879684(服务器接受)C:noop(空操作,延迟退出时间)S:250OKC:quit(退出SMTP服务器连接)1、使用Base64编码原因:E-mail只能支持7位数据,故不能传输8位二进制数据2、Base64编码方案:使用6位来代替二进制字节。即:三个8位字节变成四个6
8、位字节,“=”表示结尾如:AAEC=//6位二进制编
此文档下载收益归作者所有