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();
}
}
}
闽公网安备 35060202000074号