服务热线:13616026886

技术文档 欢迎使用技术文档,我们为你提供从新手到专业开发者的所有资源,你也可以通过它日益精进

位置:首页 > 技术文档 > JAVA > 新手入门 > 基础入门 > 查看文档

[java100例]048、使用javamail接收邮件


  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();
        }
    }
}

扫描关注微信公众号