快速业务通道

[JAVA100例]046、使用SMTP协议接收邮件 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-21

[JAVA100例]046、使用SMTP协议接收邮件

时间:2011-01-09

import java.io.*; import java.net.*; /** * <p>Title: SMTP协议接收邮件</p> * <p>Description: 通过Socket连接POP3服务器,使用SMTP协议接收邮件服务器中的邮件</p> * <p>Copyright: Copyright (c) 2003</p> * <p>Filename: </p> * @version 1.0 */ class POP3Demo { /** *<br>方法说明:主方法,接收用户输入 *<br>输入参数: *<br>返回类型: */  public static void main(String[] args){   if(args.length!=3){   System.out.println("USE: java POP3Demo mailhost user password");   }   new POP3Demo().receive(args[0],args[1],args[2]);  } /** *<br>方法说明:接收邮件 *<br>输入参数:String popServer 服务器地址 *<br>输入参数:String popUser 邮箱用户名 *<br>输入参数:String popPassword 邮箱密码 *<br>返回类型: */  public static void receive (String popServer, String popUser, String popPassword)  {   String POP3Server = popServer;   int POP3Port = 110;   Socket client = null;   try   {    // 创建一个连接到POP3服务程序的套接字。    client = new Socket (POP3Server, POP3Port);    //创建一个BufferedReader对象,以便从套接字读取输出。    InputStream is = client.getInputStream ();    BufferedReader sockin;    sockin = new BufferedReader (new InputStreamReader (is));    //创建一个PrintWriter对象,以便向套接字写入内容。    OutputStream os = client.getOutputStream ();    PrintWriter sockout;    sockout = new PrintWriter (os, true); // true for auto-flush    // 显示POP3握手信息。    System.out.println ("S:" + sockin.readLine ());    /*--  与POP3服务器握手过程  --*/     System.out.print ("C:");    String cmd = "user "+popUser;    // 将用户名发送到POP3服务程序。    System.out.println (cmd);    sockout.println (cmd);    // 读取POP3服务程序的回应消息。    String reply = sockin.readLine ();    System.out.println ("S:" + reply); System.out.print ("C:");    cmd = "pass ";    // 将密码发送到POP3服务程序。    System.out.println(cmd+"*********");    sockout.println (cmd+popPassword);    // 读取POP3服务程序的回应消息。    reply = sockin.readLine ();    System.out.println ("S:" + reply);         System.out.print ("C:");    cmd = "stat";    // 获取邮件数据。    System.out.println(cmd);    sockout.println (cmd);    // 读取POP3服务程序的回应消息。    reply = sockin.readLine ();    System.out.println ("S:" + reply);    if(reply==null) return;    System.out.print ("C:");    cmd = "retr 1";    // 将接收第一丰邮件命令发送到POP3服务程序。    System.out.println(cmd);    sockout.println (cmd);    // 输入了RETR命令并且返回了成功的回应码,持续从套接字读取输出,    // 直到遇到<CRLF>.<CRLF>。这时从套接字读出的输出就是邮件的内容。    if (cmd.toLowerCase ().startsWith ("retr") &&     reply.charAt (0) == ´+´)     do     {      reply = sockin.readLine ();      System.out.println ("S:" + reply);      if (reply != null && reply.length () > 0)       if (reply.charAt (0) == ´.´)        break;     }     while (true);    cmd = "quit";    // 将命令发送到POP3服务程序。    System.out.print (cmd);    sockout.println (cmd);   }   catch (IOException e)   {    System.out.println (e.toString ());   }   finally   {    try    { if (client != null)      client.close ();    }    catch (IOException e)    {    }   }  } }

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号