同时得到邮件和附件

  1. //读其中一封邮件
  2. publicActionForwardreadmail(ActionMappingmapping,ActionFormform,
  3. HttpServletRequestrequest,HttpServletResponseresponse)throwsIOException,ServletException
  4. {
  5. try
  6. {
  7. setContext();
  8. Listmail_title=newArrayList();
  9. Address[]address;
  10. Stringmailfrom="无";//来自
  11. Stringchaosong="无";//抄送
  12. //Stringsql="";
  13. intbh=Integer.parseInt(request.getParameter("bh"));//要查看的第几封邮件
  14. Stringdzbh=request.getSession().getAttribute("dzbh").toString();//用户编号,用于数据库查出该用户的邮箱名和密码
  15. setu_p_m(dzbh);//得到用户名和密码
  16. SimpleDateFormatsd=newSimpleDateFormat("yyyy-MM-ddHH:mm");//格式化时间
  17. Propertiesprops=newProperties();
  18. Sessionrecesession=Session.getInstance(props,null);
  19. recesession.setDebug(true);
  20. //创建一个Store对象,并根据得到的三个参数连接到邮件服务器中的用户邮箱
  21. Storestore=recesession.getStore("pop3");
  22. Stringhost="pop3."+mailserver+".com";//是邮箱
  23. store.connect(host,email,password);
  24. //打开收件箱
  25. Folderinbox=store.getFolder("INBOX");
  26. inbox.open(Folder.READ_ONLY);
  27. Listmail_nr=newArrayList();
  28. Messagemessage=inbox.getMessage(bh);
  29. mail_nr.add(message.getSubject());//标题
  30. address=message.getFrom();
  31. if(address!=null)
  32. mailfrom=address[0].toString();
  33. mail_nr.add(mailfrom);//来自
  34. address=message.getRecipients(Message.RecipientType.CC);
  35. if(address!=null)
  36. chaosong=address[0].toString();
  37. mail_nr.add(chaosong);//抄送
  38. mail_nr.add(sd.format(message.getSentDate()));//发送时间
  39. Stringfjbz="0";//0为没有附件
  40. Listmail_fj=newArrayList();//保存附件参数
  41. Listmail_wb=newArrayList();//保存邮件内容,内容分为普通文本和HTML格式。
  42. //是否有附件
  43. if(message.isMimeType("multipart/*"))
  44. {
  45. mail_nr.add("0");
  46. Multipartmultipart=(Multipart)message.getContent();
  47. for(intj=0;j<multipart.getCount();j++)
  48. {
  49. Listl_fj=newArrayList();
  50. //得到每个部分的属性
  51. Partp=multipart.getBodyPart(j);
  52. Stringdisposition=p.getDisposition();
  53. //如果该部分中是附件内容,标志为1
  54. if((disposition!=null)&&(disposition.equals(Part.ATTACHMENT)||disposition.equals(Part.INLINE)))
  55. {
  56. fjbz="1";
  57. Stringfilename=p.getFileName();
  58. filename=javax.mail.internet.MimeUtility.decodeText(filename);
  59. l_fj.add(filename);//附件名
  60. l_fj.add(bh);//第几封邮件
  61. l_fj.add(j);//第几个附件
  62. mail_fj.add(l_fj);
  63. }
  64. elseif(disposition==null)
  65. {
  66. //如果该部分是普通文本内容(无附件),则输出其文本内容
  67. if(p.isMimeType("text/plain")){
  68. System.out.println("+++++++text/plain+++++++++++++++++"+p.getContentType());
  69. mail_wb.add(p.getContent());
  70. }else{
  71. System.out.println("++++++++++++else++++++++++++++++++++++="+p.getContent());
  72. mail_wb.add(p.getContent());
  73. //如果该部分是特殊附件,就不做处理
  74. }
  75. }
  76. }
  77. }
  78. elseif(message.isMimeType("text/plain")){
  79. mail_nr.add("1");
  80. mail_wb.add(message.getContent());
  81. }
  82. mail_nr.add(mail_wb);
  83. mail_nr.add(fjbz);
  84. mail_nr.add(mail_fj);
  85. mail_title.add(mail_nr);
  86. request.setAttribute("mail_title",mail_title);
  87. //关闭收件箱和到邮件服务器的连接
  88. inbox.close(true);
  89. store.close();
  90. request.setAttribute("errmail","");
  91. }catch(MessagingExceptionm)
  92. {
  93. request.setAttribute("errmail","读取邮件错误,请查验邮箱名称和密码!");
  94. System.out.println(m.toString());
  95. }
  96. catch(Exceptione)
  97. {
  98. request.setAttribute("errmail","读取邮件错误,可能登录超时或其它错误,请与管理员联系!");
  99. e.printStackTrace();
  100. }
  101. returnmapping.findForward("readmail");
  102. }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值