getReceive.java
上传用户:liangcc
上传日期:2019-05-24
资源大小:4412k
文件大小:5k
源码类别:

WEB邮件程序

开发平台:

Java

  1. package com.softeem.webmail.action.receivemail;
  2. import java.util.ArrayList;
  3. import java.util.List;
  4. import java.util.Properties;
  5. import java.util.Vector;
  6. import javax.mail.Address;
  7. import javax.mail.Folder;
  8. import javax.mail.Message;
  9. import javax.mail.MessagingException;
  10. import javax.mail.NoSuchProviderException;
  11. import javax.mail.Session;
  12. import javax.mail.Store;
  13. import javax.mail.internet.InternetAddress;
  14. import javax.mail.internet.MimeMessage;
  15. import javax.servlet.http.HttpServletRequest;
  16. import com.softeem.webmail.dao.mail.Mail;
  17. public class getReceive {
  18. public static Message[] getMessage(String host,String name,String password)  {
  19. host="pop."+host+".com";
  20. // String host = "pop.163.com";
  21. // String username = "zserdx001";
  22. // String password = "jimjim";
  23. Folder folder=null;
  24. Store store=null;
  25. Properties props = new Properties();
  26. Session session = Session.getDefaultInstance(props, null);
  27. try {
  28. store = session.getStore("pop3");
  29. store.connect(host, name, password);
  30. folder = store.getFolder("INBOX");
  31. folder.open(Folder.READ_ONLY);
  32. Message[] message = folder.getMessages();
  33. return message;
  34. } catch (NoSuchProviderException e2) {
  35. e2.printStackTrace();
  36. } catch (MessagingException e) {
  37. e.printStackTrace();
  38. }
  39. // finally{
  40. // try {
  41. // folder.close(false);
  42. // store.close();
  43. // } catch (MessagingException e) {
  44. // e.printStackTrace();
  45. // }
  46. // }
  47. return null;
  48. }
  49. public static void main(String[] args) {
  50. getReceive.getMessage("163", "zserdx001", "jimjim");
  51. }
  52. public static  List<Mail> getMail(Message[] message ,String username,HttpServletRequest request){
  53. List<Mail> mails=new ArrayList<Mail>();
  54. for (int i = 0, n = message.length; i < n; i++){
  55. try {
  56. //new一个mail对象
  57. Mail mail=new Mail();
  58. //填充mail_from
  59. InternetAddress address[] = (InternetAddress[]) message[i].getFrom();
  60. String from = address[0].getAddress();
  61. System.out.println("from="+from+"<><><>");
  62. if (from == null)
  63. from = "";
  64. String personal = address[0].getPersonal();
  65. if (personal == null)
  66. personal = "";
  67. String fromaddr = personal + "<" + from + ">";
  68. mail.setMail_from(from);
  69. //填充日期
  70. mail.setDate(message[i].getSentDate().toString());
  71. //填充大小
  72. mail.setSize(message[i].getSize());
  73. //填充所要放入的邮箱
  74. mail.setBox_name("recbox");
  75. //填充收件人
  76. mail.setMail_to(username);
  77. //填充主题
  78. mail.setSubject(message[i].getSubject());
  79. //填充附件地址
  80. csdntest csdn=new csdntest();
  81. Vector vec=csdn.getAtta(message[i],request);
  82. if(vec!=null){
  83. Vector va=(Vector)vec.get(2);
  84. if(va.size()>0){
  85. String path=(String)va.get(0);
  86. mail.setAdds(path);
  87. }
  88. }
  89. //填充邮件内容
  90. mail.setContent(message[i].getSubject());
  91. //填充状态
  92. mail.setStat("1");
  93. mails.add(mail);
  94. } catch (Exception e) {
  95. e.printStackTrace();
  96. }
  97. }
  98. return mails;
  99. }
  100. // public static Mail[] getMail(Message[] message){
  101. // Mail[] mail;
  102. // for (int i = 0, n = message.length; i < n; i++) {
  103. // Mail m=new Mail();
  104. // try {
  105. // if (!"class java.lang.String".equals(message[i].getContent()
  106. // .getClass().toString())) {
  107. // Multipart mp = (Multipart) message[i].getContent();
  108. // for (int j = 0, s = mp.getCount(); j < s; j++) {
  109. // BodyPart part = mp.getBodyPart(j);
  110. // String disposition = part.getDisposition();
  111. // if (disposition == null) {
  112. // // Check if plain
  113. // MimeBodyPart mbp = (MimeBodyPart) part;
  114. // if (mbp.isMimeType("text/plain;")) {
  115. // FromBase64.getFromBase64(mbp.toString());
  116. //// m.setContent();
  117. //
  118. //
  119. // } else {
  120. // if(mbp.isMimeType("non-attachment")){
  121. //  System.out.println(mbp.getFileName()+"============");
  122. // /*
  123. //  * 存储附件
  124. //  * 
  125. //  * */
  126. //  SaveAdd.SaveFile(mbp.getFileName(), mbp.getInputStream());
  127. // }
  128. //
  129. // }
  130. // }
  131. // else if ((disposition != null)
  132. // && ((disposition.equals(Part.ATTACHMENT)))
  133. // || (disposition.equals(Part.INLINE))) {
  134. // try {
  135. // System.out.println(part.getFileName()
  136. // + "============附件名称");
  137. //  SaveAdd.SaveFile(part.getFileName(), part.getInputStream());
  138. // } catch (MessagingException e) {
  139. // e.printStackTrace();
  140. // }
  141. // try {
  142. // part.writeTo(System.out);
  143. // } catch (IOException e) {
  144. // e.printStackTrace();
  145. // } catch (MessagingException e) {
  146. // e.printStackTrace();
  147. // }
  148. // }
  149. // }
  150. // }
  151. // else{
  152. // System.out.println("邮件内容是"+message[i].getContent());
  153. // }
  154. // } catch (IOException e) {
  155. // e.printStackTrace();
  156. // } catch (MessagingException e) {
  157. // e.printStackTrace();
  158. // }
  159. // }
  160. // return null;
  161. //}
  162. }