- //读其中一封邮件
- publicActionForwardreadmail(ActionMappingmapping,ActionFormform,
- HttpServletRequestrequest,HttpServletResponseresponse)throwsIOException,ServletException
- {
- try
- {
- setContext();
- Listmail_title=newArrayList();
- Address[]address;
- Stringmailfrom="无";//来自
- Stringchaosong="无";//抄送
- //Stringsql="";
- intbh=Integer.parseInt(request.getParameter("bh"));//要查看的第几封邮件
- Stringdzbh=request.getSession().getAttribute("dzbh").toString();//用户编号,用于数据库查出该用户的邮箱名和密码
- setu_p_m(dzbh);//得到用户名和密码
- SimpleDateFormatsd=newSimpleDateFormat("yyyy-MM-ddHH:mm");//格式化时间
- Propertiesprops=newProperties();
- Sessionrecesession=Session.getInstance(props,null);
- recesession.setDebug(true);
- //创建一个Store对象,并根据得到的三个参数连接到邮件服务器中的用户邮箱
- Storestore=recesession.getStore("pop3");
- Stringhost="pop3."+mailserver+".com";//是邮箱
- store.connect(host,email,password);
- //打开收件箱
- Folderinbox=store.getFolder("INBOX");
- inbox.open(Folder.READ_ONLY);
- Listmail_nr=newArrayList();
- Messagemessage=inbox.getMessage(bh);
- mail_nr.add(message.getSubject());//标题
- address=message.getFrom();
- if(address!=null)
- mailfrom=address[0].toString();
- mail_nr.add(mailfrom);//来自
- address=message.getRecipients(Message.RecipientType.CC);
- if(address!=null)
- chaosong=address[0].toString();
- mail_nr.add(chaosong);//抄送
- mail_nr.add(sd.format(message.getSentDate()));//发送时间
- Stringfjbz="0";//0为没有附件
- Listmail_fj=newArrayList();//保存附件参数
- Listmail_wb=newArrayList();//保存邮件内容,内容分为普通文本和HTML格式。
- //是否有附件
- if(message.isMimeType("multipart/*"))
- {
- mail_nr.add("0");
- Multipartmultipart=(Multipart)message.getContent();
- for(intj=0;j<multipart.getCount();j++)
- {
- Listl_fj=newArrayList();
- //得到每个部分的属性
- Partp=multipart.getBodyPart(j);
- Stringdisposition=p.getDisposition();
- //如果该部分中是附件内容,标志为1
- if((disposition!=null)&&(disposition.equals(Part.ATTACHMENT)||disposition.equals(Part.INLINE)))
- {
- fjbz="1";
- Stringfilename=p.getFileName();
- filename=javax.mail.internet.MimeUtility.decodeText(filename);
- l_fj.add(filename);//附件名
- l_fj.add(bh);//第几封邮件
- l_fj.add(j);//第几个附件
- mail_fj.add(l_fj);
- }
- elseif(disposition==null)
- {
- //如果该部分是普通文本内容(无附件),则输出其文本内容
- if(p.isMimeType("text/plain")){
- System.out.println("+++++++text/plain+++++++++++++++++"+p.getContentType());
- mail_wb.add(p.getContent());
- }else{
- System.out.println("++++++++++++else++++++++++++++++++++++="+p.getContent());
- mail_wb.add(p.getContent());
- //如果该部分是特殊附件,就不做处理
- }
- }
- }
- }
- elseif(message.isMimeType("text/plain")){
- mail_nr.add("1");
- mail_wb.add(message.getContent());
- }
- mail_nr.add(mail_wb);
- mail_nr.add(fjbz);
- mail_nr.add(mail_fj);
- mail_title.add(mail_nr);
- request.setAttribute("mail_title",mail_title);
- //关闭收件箱和到邮件服务器的连接
- inbox.close(true);
- store.close();
- request.setAttribute("errmail","");
- }catch(MessagingExceptionm)
- {
- request.setAttribute("errmail","读取邮件错误,请查验邮箱名称和密码!");
- System.out.println(m.toString());
- }
- catch(Exceptione)
- {
- request.setAttribute("errmail","读取邮件错误,可能登录超时或其它错误,请与管理员联系!");
- e.printStackTrace();
- }
- returnmapping.findForward("readmail");
- }
同时得到邮件和附件
最新推荐文章于 2024-07-26 09:40:31 发布