传智播客-邮件开发(2)-以命令方式收发邮件

来源:互联网 发布:淘宝一元东西包邮 编辑:程序博客网 时间:2024/06/17 07:09

准备实验环境:
提前在sina和sohu上开设一个免费账户(ms现在只有sohu还公开对外SMTP服务器):itcast_test@sina.com;
获取smtp和pop3服务器的名称;
在outlook中配置sina账户(outlook为这一邮件收发实验中的邮件客户端软件);
使用outlook发送和接收邮件;
提前准备好Base64编码的用户名和密码(因为以命令方式输入用户名和密码连接邮件服务器时,需要提供已用Base64编码的用户名和密码);

 

smtp协议默认端口:25
pop3协议默认端口:110

 

上机操作:
(1)发送邮件
cmd-->telnet smtp.sina.com 25(回车)--(服务器连接成功)-->
ehlo itcast_test(回车)
250-mail5-203sinamail.sina.com.cn
250-8BITMIME
250-SIZE 31457280
250-AUTH PLAIN LOGIN
250 AUTH=PLAIN LOGIN 支持两种认证方式:PLAIN或LOGIN)
auth login(使用login认证方式 回车)
334 UXNlcm5hbWU6(提示需要输入用户名itcast_test用Base64编码后的值)
aXRjYXN0X3Rlc3Q=(itcast_test用Base64编码后的值 回车)
334 UGFzc3dvcmQ6(提示需要输入密码123456用Base64编码后的值)
MTIzNDU2(123456用Base64编码后的值 回车)
235 #2.0.0 OK Authenticated(时间过长可能会反馈认证失败)
mail from: <itcast_test@sina.com>(from后面的内容为邮件发送方的地址 回车)
250 sender <itcast_test@sina.com> ok
rcpt to: <itcast_test@sohu.com>
250 recipient <itcast_test@sohu.com> ok
data(表示开始撰写邮件内容,该命令后的所有数据都将被当作邮件正文内容,直到出现邮件的终止标识 回车)
354 go ahead(说明要我们继续)
from: <lili@sohu.com>(from后的内容为邮件发送者的名称,邮件客户端软件读取的发件人信息即该行信息 回车)
to: yyy (这一行可以不写 回车)
subject: haha(邮件主题 离正文之间要有一个空行 回车)

test!!!(邮件正文 回车)
.(邮件内容结束后,一定要输个点“.”表示邮件结束 回车)
250 ok: Message 73453646 accepted
quit(断开连接,退出 回车)

 

(2)用户主动接收邮件
cmd-->telnet pop3.sina.com 110(回车)--(服务器连接成功)-->
user itcast_test(回车)
+OK Password required for "itcast_test@sohu.com"
pass 123456(回车)
+OK user "itcast_test@sohu.com" has 1 message(s).
stat(查看邮件状况 回车)
+OK 1 1099(表示有1封邮件,这一封邮件占用空间为1099?)
list(查看每封邮件,下面列示的是每封邮件详情 回车)
+OK 1 messages(1099 octets).
1 1099
.
list 1(利用邮件编号明确查看第几封邮件 回车)
+OK 1 1099 (1)
retr 1(利用邮件编号明确指定返回第几封邮件 回车)
...(整封邮件的详情,而且增加了一些路由信息)
dele 1(利用邮件编号明确指定删除第几封邮件,不过这不是真正的删除,只是做一个删除标记 回车)
+OK message 1 deleted.
stat(回车)
+OK 0 0
rset(从垃圾箱恢复做了删除标记的邮件 回车)
+OK 1 messages(1099 octets).
stat(回车)
+OK 1 1099
quit(退出,此时做了删除标记的邮件才会被真正删除 回车)

 

一些说明:
上面操作中的响应信息开头出现的三位十进制数是响应状态码,响应状态码的最高位数字代表了不同的分类,当其为2时表示命令执行成功,为5时表示命令执行失败,为3时表示命令没有完成,关于各响应状态码所代表的具体含义,可以在需要时查阅RFC821文档。

 

通常可以从某个站点的帮助中心获取smtp和pop3服务器地址,如果该站点提供了公开邮件服务的话。

 

类似outlook这样的邮件客户端访问某个smtp服务器时需要登录信息认证,但是一个smtp服务器访问另一个smtp服务器时是不需要登录信息的;在outlook上配置其他邮箱收发服务时,internet账户-->选中某个邮箱-->属性-->服务器-->勾选“我的服务器要求身份验证”,否则邮件发送很可能失败,因为现在的smtp服务器大多都需要身份验证了,邮件客户端也必须与之一致。

 

cmd-->nslookup(查看某个域名信息 回车)
set type=mx(mx即mailbox,表示邮箱类型 回车)
sina.com(解析sina.com这个域名下的smtp邮件服务器的地址 回车)
...(因为sina网站很大,有多台邮件服务器提供服务,这多台邮件服务器实现了一个集群,利用DNS实现的该集群;连续多敲几次sina.com再回车,可以发现这多台邮件服务器是以轮循的顺序对外接收要求服务的信息,以此实现了负载均衡)。

原创粉丝点击