Win7默认没有安装telnet功能,所以你直接用telnet命令是用不了的。因为在这里要在Win7用dos命令的方式收发
邮件需要用到telne命令。可以去“控制面板”--->“程序"-->"打开或关闭Windows功能”,勾上“telnet客户端”,确定就可
以正常使用telnet命令了。
此处我们以一个列子来讲解一个yeah邮箱在dos命令行下收发邮件的方法:
1. 与yeah邮箱的smpt服务器建立连接。
命令为:telnet smtp.yeah.net 25, 这里的25为yeah邮箱服务器smtp的端口
号。而各个邮箱的各个服务器端口号可以从http://www.cnblogs.com/GT_Andy/archive/2009/11/02/1921968.html
找到,我就是从这里找的。
2. 如果如果上述连接成功,smtp服务器就会回应如下信息(显示在终端上):
220 yeah.net Anti-spam GT for Coremail System (yeah[20141016])
3. 输入命令:ehlo “跟随便几个几个字符” ,或者helo “跟随便几个字符”, 与smtp服务器"打个招呼"。
如:键入命令ehlo 00时,会有以下提示:
250-mail
250-PIPELINING
250-AUTH LOGIN PLAIN
250-AUTH=LOGIN PLAIN
250-coremail 1Uxr2xKj7kG0xkI17xGrU7I0s8FY2U3Uj8Cz28x1UUUUU7Ic2I0Y2Ur4CXT6UCa0xDr
UUUUj
250-STARTTLS
250-SMTPUTF8
250 8BITMIME
如键入命令:helo loa时,会有以下提示:
250 OK
而上面几处的状态码250表示请求邮件动作正确,完成(HELO,MAIL FROM,RCPT TO,QUIT 指令执行成功会返回此信
息)。当然还有其他的状态码,他们分别表示的含义如下:
220 : 服务就绪
250 :请求邮件动作正确,完成(HELO,MAILFROM,RCPT TO,QUIT 指令执行成功会返回此信息)
235 :认证通过
221 :正在处理
354 :开始发送数据,结束以 .(DATA指令执行成功会返回此信息)
500 :语法错误,命令不能识别
550 :命令不能执行,邮箱无效
552 :中断处理:用户超出文件空间
4. 发送auth login登录指令请求并登录服务器。
这里涉及到一个问题,就是当发送authlogin指令后叫你输入用户名和密码,这里的用户名和密码须要用
BASE64编码。因为我这里的大标题是Java邮件开发,所以我们可以用Java写一个小程序,分别将自己的邮
箱账户名和密码输入进去后,将他们进行BASE64编码后输出到控制台,这样的话我们就可以用BASE64编码
过的邮箱账户名和密码登录服务器了。但是这里有涉及到另外一个问题,就是:用Java编写BASE64代码的时
候,默认的库中没有sun.misc.BASE64Encoder包,于是我们就需要自己添加jar包了,这个jar包就是rt.jar,
它在JAVA_HOME\jre\lib目录下。用Java写的BASE64编码的代码如下:
BASE64Encoder encoder = new BASE64Encoder();
System.out.println("please input your user name:");
String username = new BufferedReader(new InputStreamReader(System.in)).readLine();
System.out.println("编码后的username为:"+encoder.encode(username.getBytes()));
System.out.println("please input your password:");
String password = new BufferedReader(new InputStreamReader(System.in)).readLine();
System.out.println("编码后的password为:+encoder.encode(password.getBytes()));
5. 登录成功后就可以向目标邮件地址发送邮件了。
dos命令如下:
MAILFROM:
RCPTTO:
DATA //正面开始传输信件的内容,且最后要以只含有 . 的特殊行结束。
From:[email protected]
Subject:test mail
Test,# 邮件正文内容,与Header部分空一行开始写 test body
. # 邮件写完,以一个句点加回车结果。
这样的话我们的邮件就写完了,当我们敲下回车键时邮件就发送出去了。这时我们可以去目的邮件地址查看我们
发送的邮件成功收到没。当然在这之前我们要与smtp服务器断开连接。使用的命令如下:
QUIT //断开连接
1. 同样,建立连接:telnet pop.qq.com 110,注意这里连的是pop3服务器,但是不能搞成pop3.qq.com。
2. 如果上述连接成功,使用命令user “邮件账号,@以前的”登录,POP3服务器会响应如下信息:
+OK core mail
3. 输入密码pass password如果成功,终端会显示如下信息:
+OK 5 message (2267 octets)
其中数字5表示有5封邮件,2267表示这5封邮件总的字节数(即2267B),
然后有以下命令可以使用,其命令格式及参数说明如下:
4. 输入一下其中一些命令进行相应的操作
a.stat命令 格式:stat 无需参数 功能:查看邮箱里的邮件数目,占用的空间大小
b.list命令 格式:list[n] 参数n可选,n为邮件编号 功能:查看第几封邮件的情况
c.uidl命令 格式:uidl[n] 同上 功能:uidl命令与list命令用途差不多,只不过uidl命令显示邮件
的信息比list更详细,更具体,执行结果如图四
d.retr命令 格式:retr n 参数n不可省,n为邮件编号 功能:查看这封邮件的详细情况,内容、发件人
主机、路由信息
e.dele命令 格式:dele n 同上 功能:删除邮件
f.top 命令 格式:top n m参数n,m不可省,n为邮件编号,m为行数 功能:top命令有两个参数,形如:
top n m n为邮件编号,m是要读出邮件正文的行数,如果m=0,则只读出邮件的邮件头部分
g.noop命令 格式:noop 无需参数 功能:该命令发出后,POP3服务器不作任何事,仅返回一个正确响应"+OK
h.quit命令 格式:quit 无需参数 功能:该命令发出后,POP3服务器不作任何事,仅返回一个正确响应"+OK
i.rset命令 格式:rset 无需参数 功能:从回收站将邮件恢复回来