WEB开发网
开发学院WEB开发Jsp [JAVA100例]048、使用JavaMail接收邮件 阅读

[JAVA100例]048、使用JavaMail接收邮件

 2008-01-05 08:08:27 来源:WEB开发网   
核心提示:import javax.mail.*;import javax.mail.internet.*;import java.util.*;import java.io.*;/** * <p>Title: 使用JavaMail接收邮件</p> * <p>Description: 实例Ja

  import javax.mail.*;
import javax.mail.internet.*;
import java.util.*;
import java.io.*;
/**
 * <p>Title: 使用JavaMail接收邮件</p>
 * <p>Description: 实例JavaMail包接收邮件,本实例没有实现接收邮件的附件。</p>
 * <p>Copyright: Copyright (c) 2003</p>
 * <p>Filename: POPMail.java</p>
 * @version 1.0
 */
public class POPMail{
/**
 *<br>方法说明:主方法,接收用户输入的邮箱服务器、用户名和密码
 *<br>输入参数:
 *<br>返回类型:
 */
   public static void main(String args[]){
     try{
       String popServer=args[0];
       String popUser=args[1];
       String popPassWord=args[2];
       receive(popServer, popUser, popPassword);
     }catch (Exception ex){
       System.out.PRintln("Usage: java com.lotontech.mail.POPMail"+" popServer popUser popPassword");
     }
     System.exit(0);
   }
/**
 *<br>方法说明:接收邮件信息
 *<br>输入参数:
 *<br>返回类型:
 */
   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();
       }
     }
   }
/**
 *<br>方法说明:打印邮件信息
 *<br>输入参数:Message message 信息对象
 *<br>返回类型:
 */
   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();
     }
   }
}

Tags:JAVA 使用 JavaMail

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接