java pop3 接收邮件_JavaMail(4)--使用POP3接收邮件

packagebook.email;importjava.io.BufferedReader;importjava.io.BufferedWriter;importjava.io.ByteArrayOutputStream;importjava.io.File;importjava.io.FileWriter;importjava.io.IOException;importjava.io.InputStreamReader;importjava.io.Reader;importjava.io.StringReader;importjava.io.UnsupportedEncodingException;importjava.util.Date;importjavax.mail.BodyPart;importjavax.mail.Flags;importjavax.mail.Folder;importjavax.mail.Message;importjavax.mail.MessagingException;importjavax.mail.Multipart;importjavax.mail.NoSuchProviderException;importjavax.mail.Part;importjavax.mail.Session;importjavax.mail.Store;importjavax.mail.internet.InternetAddress;importjavax.mail.internet.MimeMessage;importjavax.mail.internet.MimeUtility;/*** 邮件接收器,目前支持pop3协议。

* 能够接收文本、HTML和带有附件的邮件*/publicclassMailReceiver {//收邮件的参数配置privateMailReceiverInfo receiverInfo;//与邮件服务器连接后得到的邮箱privateStore store;//收件箱privateFolder folder;//收件箱中的邮件消息privateMessage[] messages;//当前正在处理的邮件消息privateMessage currentMessage;privateString currentEmailFileName;publicMailReceiver(MailReceiverInfo receiverInfo) {this.receiverInfo=receiverInfo;

}/*** 收邮件*/publicvoidreceiveAllMail()throwsException{if(this.receiverInfo==null){thrownewException("必须提供接收邮件的参数!");

}//连接到服务器if(this.connectToServer()) {//打开收件箱if(this.openInBoxFolder()) {//获取所有邮件this.getAllMail();this.closeConnection();

}else{thrownewException("打开收件箱失败!");

}

}else{thrownewException("连接邮件服务器失败!");

}

}/*** 登陆邮件服务器*/privatebooleanconnectToServer() {//判断是否需要身份认证MyAuthenticator authenticator=null;if(this.receiverInfo.isValidate()) {//如果需要身份认证,则创建一个密码验证器authenticator=newMyAuthenticator(this.receiverInfo.getUserName(),this.receiverInfo.getPassword());

}//创建sessionSession session=Session.getInstance(this.receiverInfo

.getProperties(), authenticator);//创建store,建立连接try{this.store=session.getStore(this.receiverInfo.getProtocal());

}catch(NoSuchProviderException e) {

System.out.println("连接服务器失败!");returnfalse;

}

System.out.println("connecting");try{this.store.connect();

}catch(MessagingException e) {

System.out.println("连接服务器失败!");returnfalse;

}

System.out.println("连接服务器成功");returntrue;

}/*** 打开收件箱*/privatebooleanopenInBoxFolder() {try{this.folder=store.getFolder("INBOX");//只读folder.open(Folder.READ_ONLY);returntrue;

}catch(MessagingException e) {

System.err.println("打开收件箱失败!");

}returnfalse;

}/*** 断开与邮件服务器的连接*/privatebooleancloseConnection() {try{if(this.folder.isOpen()) {this.folder.close(true);

}this.store.close();

System.out.println("成功关闭与邮件服务器的连接!");returntrue;

}catch(Exception e) {

System.out.println("关闭和邮件服务器之间连接时出错!");

}returnfalse;

}/*** 获取messages中的所有邮件

*@throwsMessagingException*/privatevoidgetAllMail()throwsMessagingException {//从邮件文件夹获取邮件信息this.messages=this.folder.getMessages();

System.out.println("总的邮件数目:"+messages.length);

System.out.println("新邮件数目:"+this.getNewMessageCount());

System.out.println("未读邮件数目:"+this.getUnreadMessageCount());//将要下载的邮件的数量。intmailArrayLength=this.getMessageCount();

System.out.println("一共有邮件"+mailArrayLength+"封");interrorCounter=0;//邮件下载出错计数器intsuccessCounter=0;for(intindex=0; index

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值