分享

使用JavaMail接收邮件

 吹风散 2011-07-11
package com.email.receive;
import javax.mail.*;
import javax.mail.internet.*;
import java.util.*;
import java.io.*;
/*
 Title: 使用JavaMail接收邮件
 Description: 实例JavaMail包接收邮件,本实例没有实现接收邮件的附件。
 Copyright: Copyright (c) 2003
 Filename: POPMail.java
 @version 1.0
 */
public class ReceiveEmail{
 /*
方法说明:主方法,接收用户输入的邮箱服务器、用户名和密码
输入参数:
返回类型:
*/
 public static void main(String args[]){
  try{
   String popServer="pop3.sina.com";    //邮件服务器
   String popUser="user";     //根据自已的用户名修改
   String popPassword="pass";   //根据自已的密码修改
   receive(popServer, popUser, popPassword);
  }catch (Exception ex){
   System.out.println("Usage: java com.lotontech.mail.POPMail"+" popServer popUser popPassword");
  }
  System.exit(0);
 }
 /*
方法说明:接收邮件信息
输入参数:
返回类型:*/

 public static void receive(String popServer, String popUser, String popPassword){
  Store store=null;
  Folder folder=null;
  try{
   //获取默认会话
   Properties props = System.getProperties();
   Session session = Session.getDefaultInstance(props, null);
   //使用POP3会话机制,连接服务器
   store = session.getStore("pop3");
   store.connect(popServer, popUser, popPassword);
   //获取默认文件夹
   folder = store.getDefaultFolder();
   if (folder == null) throw new Exception("No default folder");
   //如果是收件箱
   folder = folder.getFolder("INBOX");
   if (folder == null) throw new Exception("No POP3 INBOX");
   //使用只读方式打开收件箱
   folder.open(Folder.READ_ONLY);
   //得到文件夹信息,获取邮件列表
   Message[] msgs = folder.getMessages();
   for (int msgNum = 0; msgNum < msgs.length; msgNum++){
    printMessage(msgs[msgNum]);
   }
  }catch (Exception ex){
   ex.printStackTrace();
  }
  finally{
   //释放资源
   try{
    if (folder!=null) folder.close(false);
    if (store!=null) store.close();
   }catch (Exception ex2) {
    ex2.printStackTrace();
   }
  }
 }
 /*
方法说明:打印邮件信息
输入参数:Message message 信息对象
返回类型:
  */
 public static void printMessage(Message message){
  try{
   //获得发送邮件地址
   String from=((InternetAddress)message.getFrom()[0]).getPersonal();
   if (from==null) from=((InternetAddress)message.getFrom()[0]).getAddress();
   System.out.println("FROM: "+from);
   //获取主题
   String subject=message.getSubject();
   System.out.println("SUBJECT: "+subject);
   //获取信息对象
   Part messagePart=message;
   Object content=messagePart.getContent();
   //附件
   if (content instanceof Multipart){
    messagePart=((Multipart)content).getBodyPart(0);
    System.out.println("[ Multipart Message ]");
   }
   //获取content类型
   String contentType=messagePart.getContentType();
   //如果邮件内容是纯文本或者是HTML,那么打印出信息
   System.out.println("CONTENT:"+contentType);
   if (contentType.startsWith("text/plain")||
     contentType.startsWith("text/html")){
    InputStream is = messagePart.getInputStream();
    BufferedReader reader=new BufferedReader(new InputStreamReader(is));
    String thisLine=reader.readLine();
    while (thisLine!=null){
     System.out.println(thisLine);
     thisLine=reader.readLine();
    }
   }
   System.out.println("-------------- END ---------------");
  }catch (Exception ex){
   ex.printStackTrace();
  }
 }
}

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多