Win7下用命令行方式收发邮件的方法

Win7下用命令行方式收发邮件的方法

步骤: 1)将win7的“telnet客户端“功能打开。

                     Win7默认没有安装telnet功能,所以你直接用telnet命令是用不了的。因为在这里要在Win7用dos命令的方式收发

                 邮件需要用到telne命令。可以去“控制面板”--->“程序"-->"打开或关闭Windows功能”,勾上“telnet客户端”,确定就可

                 以正常使用telnet命令了。

            2)查找并学会在win7下运用dos命令发送邮件。

                      此处我们以一个列子来讲解一个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:  //告诉服务器发信人的地址 250 Mail OK

                      RCPTTO: //告诉服务器收信人的地址 250 Mail OK

                      DATA   //正面开始传输信件的内容,且最后要以只含有 . 的特殊行结束。

                      To:[email protected]  

                      From:[email protected]

                      Subject:test mail

                      Test,# 邮件正文内容,与Header部分空一行开始写 test body

                      .   # 邮件写完,以一个句点加回车结果。

                这样的话我们的邮件就写完了,当我们敲下回车键时邮件就发送出去了。这时我们可以去目的邮件地址查看我们

                发送的邮件成功收到没。当然在这之前我们要与smtp服务器断开连接。使用的命令如下:

                      QUIT  //断开连接

           3)收邮件

             

               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 无需参数  功能:从回收站将邮件恢复回来




你可能感兴趣的:(Java邮件开发)