首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网络技术 > 网络基础 >

一个读取Gmail邮件的容易程序

2012-10-30 
一个读取Gmail邮件的简单程序????? 兄弟我理论性的东西说不出来,不过实际运用咱还是有办法的前几天由于工

一个读取Gmail邮件的简单程序
????? 兄弟我理论性的东西说不出来,不过实际运用咱还是有办法的
前几天由于工作需要,想了解下关于支持ssl的邮件收发,按照以前普通的做法是行不通的,所以就上网东找找,西瞧瞧。发现了个好东西,并且实验成功。
????? 那天本想来javaeye看看有没有人有相关的经验,找了老半天,连个屁也没闻到,我就说我们,我们这些做程序员的不能老是吹吹水,谈谈道理,我们得拿出点实际的东西出来,就想fins一样,我就很佩服他的贡献精神。
????? 不说废话了,看看源代码,大家有空也可以实验下。还真有用java 代码?

  1. /**?
  2. ?*?用于收取Gmail邮件?
  3. ?*??
  4. ?*?@author?wuhua?
  5. ?*/??
  6. public?class?GmailFetch?{??
  7. ????private?static?Logger?logger?=?Logger.getLogger(GmailFetch.class);??
  8. ????public?static?void?main(String?argv[])?throws?Exception?{??
  9. ????????logger.debug("开始读取邮件......");??
  10. ????????Security.addProvider(new?com.sun.net.ssl.internal.ssl.Provider());??
  11. ????????final?String?SSL_FACTORY?=?"javax.net.ssl.SSLSocketFactory";??
  12. ??
  13. ????????//?Get?a?Properties?object??
  14. ????????Properties?props?=?System.getProperties();??
  15. ????????props.setProperty("mail.pop3.socketFactory.class",?SSL_FACTORY);??
  16. ????????props.setProperty("mail.pop3.socketFactory.fallback",?"false");??
  17. ????????props.setProperty("mail.pop3.port",?"995");??
  18. ????????props.setProperty("mail.pop3.socketFactory.port",?"995");??
  19. ??
  20. ????????//?以下步骤跟一般的JavaMail操作相同??
  21. ????????Session?session?=?Session.getDefaultInstance(props,?null);??
  22. ??
  23. ????????//?请将红色部分对应替换成你的邮箱帐号和密码??
  24. ????????URLName?urln?=?new?URLName("pop3",?ApplicationContext.POP3,?995,?null,??
  25. ????????????????ApplicationContext.GMAIL_MAIL_NAME, //这里替换您的gmail用户名?
  26. ????????????????ApplicationContext.GMAIL_MAIL_PASSWORD);? //这里替换密码
  27. ????????Store?store?=?session.getStore(urln);??
  28. ????????Folder?inbox?=?null;??
  29. ????????try?{??
  30. ????????????store.connect();??
  31. ????????????inbox?=?store.getFolder("INBOX");??
  32. ????????????inbox.open(Folder.READ_ONLY);??
  33. ????????????FetchProfile?profile?=?new?FetchProfile();??
  34. ????????????profile.add(FetchProfile.Item.ENVELOPE);??
  35. ????????????Message[]?messages?=?inbox.getMessages();??
  36. ????????????inbox.fetch(messages,?profile);??
  37. ????????????logger.debug("收件箱的邮件数:"?+?messages.length);??
  38. ????????????for?(int?i?=?0;?i?<?messages.length;?i++)?{??
  39. ????????????????//?邮件发送者??
  40. ????????????????String?from?=?decodeText(messages[i].getFrom()[0].toString());??
  41. ????????????????InternetAddress?ia?=?new?InternetAddress(from);??
  42. ????????????????logger.debug("发信人:"?+?ia.getPersonal()?+?'('??
  43. ????????????????????????+?ia.getAddress()?+?')');??
  44. ????????????????//?邮件标题??
  45. ????????????????logger.debug("主题:"?+?messages[i].getSubject());??
  46. ????????????????//?邮件大小??
  47. ????????????????logger.debug("邮件大小:"?+?messages[i].getSize());??
  48. ????????????????//?邮件发送时间??
  49. ????????????????logger.debug("发送日期:"?+?messages[i].getSentDate());??
  50. ????????????}??
  51. ????????}?finally?{??
  52. ????????????try?{??
  53. ????????????????inbox.close(false);??
  54. ????????????}?catch?(Exception?e)?{??
  55. ????????????}??
  56. ????????????try?{??
  57. ????????????????store.close();??
  58. ????????????}?catch?(Exception?e)?{??
  59. ????????????}??
  60. ????????}??
  61. ??????????
  62. ????????logger.debug("读取邮件完毕......");??
  63. ????}??
  64. ??
  65. ????protected?static?String?decodeText(String?text)??
  66. ????????????throws?UnsupportedEncodingException?{??
  67. ????????if?(text?==?null)??
  68. ????????????return?null;??
  69. ????????if?(text.startsWith("=?GB")?||?text.startsWith("=?gb"))??
  70. ????????????text?=?MimeUtility.decodeText(text);??
  71. ????????else??
  72. ????????????text?=?new?String(text.getBytes("ISO8859_1"));??
  73. ????????return?text;??
  74. ????}??
  75. ??
  76. }??
上面代码,完全可以封装成一个收取ssl邮件的库
改天有时间整理下关于发邮件的方法 1 楼 easygodg 2007-04-02   这个东西前几天我刚改的可以根据各种配置发送邮件 :) 2 楼 yexin218 2007-04-02   呵呵,强人,顶一下! 3 楼 xuygfbi 2007-04-02   试了一下报错
[AUTH] Username and password not accepted.
我的用户名和密码没有写错啊 4 楼 andyandyandy 2007-04-02   欣赏楼主的精神,可惜本人才疏学浅,hoho 5 楼 jamesby 2007-04-02   附件没有接收下来? 6 楼 waryist 2007-04-02   晕,好多类包都引不进来! 7 楼 duligavin 2007-04-02   good 8 楼 janmy 2007-06-12   Your account is not enabled for POP access. Please visit your Gmail settings page and enable your account for POP access.

我用你的程序试了一下,,出现了上面的异常,,可否解决一下 9 楼 zmo_xu 2007-06-12   楼上的是不是因为没有设置 gmail的 pop3 断口  gmail端口和别的不一样的 去google看下哈

热点排行
Bad Request.