JAVA培训
位置:首页Java开发JSPServlet
 问题状态
 
求救怎么读取邮件内容
 悬赏分:100  已经过期   过期时间2007-7-2 20:39
怎么用代码实现登入我的油箱并读取我的邮件发件人、主题、内容、等信息。知道的高手请赐教!谢谢!!
提问者:kangsg219@yahoo.com.cn  - 头衔:开发爱好者   
    
  最佳答案
  java主要代码:
try{
    properties p=new properties();
    Session s=Session.getInstance(p,null);
    Store st=s.getStore("POP3");
    st.connect("localhost","username","password");
    Folder f=st.getForder("inbox");
    f.open(Foder.READ_ONLY);
    Message ms=f.getMessages();
    for(int i=0;i<ms.length;i++)
    {
        System.out.println(ms[i].getContent());
    }
}
catch(Exception ex)
{
}
回答者:hemingwang0902@126.com  - 头衔:开发爱好者 2007-7-3 16:01:29  

 回复答案 共3条
  消息的提取  
为读邮件,您获取一个会话,获取并连接一个用于邮箱的适宜的存储(store),打开适宜的文件夹,然后获取您的消息。同样,切记完成后关闭连接。

  String host = ...;
  String username = ...;
  String password = ...;
  // Create empty properties
  Properties props = new Properties();
  // Get session
  Session session = Session.getDefaultInstance(props, null);
  // Get the store
  Store store = session.getStore("pop3");
  store.connect(host, username, password);
  // Get folder
  Folder folder = store.getFolder("INBOX");
  folder.open(Folder.READ_ONLY);
  // Get directory
  Message message[] = folder.getMessages();
  for (int i=0, n=message.length; i<n; i++) {
     System.out.println(i + ": " + message[i].getFrom()[0]
          + "\t" + message[i].getSubject());
          }
          // Close connection
          folder.close(false);
          store.close();
对每条消息做些什么由您决定。上面的代码块只是显示这些消息的发件人和主题。技术上讲,from 地址列表可能为空,而 getFrom()[0] 调用会抛出一个异常。
要显示全部信息,您可以在用户看完 from 和 subject 域之后给出提示,如用户有需要,就调用消息的 writeTo() 方法来实现。

          BufferedReader reader = new BufferedReader (
            new InputStreamReader(System.in));
          // Get directory
          Message message[] = folder.getMessages();
          for (int i=0, n=message.length; i<n; i++) {
            System.out.println(i + ": " + message[i].getFrom()[0]
              + "\t" + message[i].getSubject());
            System.out.println("Do you want to read message? " +
              "[YES to read/QUIT to end]");
            String line = reader.readLine();
            if ("YES".equals(line)) {
              message[i].writeTo(System.out);
            } else if ("QUIT".equals(line)) {
              break;
            }
          }
    回答者:lingshangwen@163.com  - 头衔:开发爱好者 2007-8-31 0:27:22  

  建议参考 javamail
    回答者:yxxcrtd@gmail.com  - 头衔:初级程序员 2007-8-6 14:18:15  

我的回答:
回答即可得10分,被采纳则可得50分+悬赏分。
  验证码

 
 
最新问题
欢迎使用本系统,智囊团。踊跃回答,赢得积分。

使用有问题请到 帮助
 
关于我们 | 商务合作 | 招聘信息 | 客服中心 | 服务条款 | 免责声明 | 网站导航 |java培训QQ留言
Copyright 2007 zhinangtuan.net.cn all rights reserved 版权所有