使用JavaMail接收邮件

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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值