`

JavaMail:简单的邮件接收程序

 
阅读更多
实现了 JavaMail 中邮件内容的创建、邮件的发送,现在就看看怎样接收邮件了。

邮件的接收与邮件的发送的基本操作步骤很类似,邮件的发送需要用到 Transport 类,邮件的接收则需要使用 Store 类,而不管是发送还是接收, Session 类和 Properties 类都是必需的。使用 Properties 对象设置连接 SMTP 服务器、 POP3 服务器的主机名、协议等,通过 Properties 对象获取应用于整个邮件程序所必须的 Session 对象,它保存了建立网络连接的会话信息,保持了邮件程序与服务器通信的环境信息。

不同的是:

邮件的接收中还要用到 Folder 类,它表示邮件夹,这是邮件的接收比邮件的发送多出来的一个类。现在有些邮箱时支持把邮件分开放在各个用户命名的邮件夹中,邮件夹里面就有好多邮件了。

各个类的操作流程:

1、创建一个 Properties 对象,该类在 java.util 包中,以键-值对的形式设置邮件接收中需要用到的传输协议,如 POP3 协议,此外还可以设置想要连接的 POP3 服务器的主机名;

2、先使用 Session 类中静态的 getInstance() 或getDefaultInstance() 获得自身对象,此时调用这两个方法时应该传入上面创建的 Properties 对象;

3、再用 Session 对象调用 getStore() 方法获得 Store 抽象类的具体实现子类对象,如 POP3Store 类,不过这不用我们关心,Session 对象会根据 Properties 对象中已经设置好的连接协议进行创建并返回;

4、使用得到的 Store 对象通过 Store.getFolder() 方法获得邮箱中的邮件夹 Folder 对象,它包含了邮箱中的所有邮件,因此使用 Folder 对象的 Folder.getMessages() 方法则可以返回邮件夹中的所有邮件 Message 对象了

5、获得了 Message 对象之后,怎么处理里面的内容则是邮件解析的工作了,不过在这里我们还是可以打印出邮件内的原始内容。

程序要求:

获得邮箱中的所有邮件,打印出邮件的发件人地址、主题,并由用户选择是否打开邮件(目前的程序只能打开邮件的原始内容)。我们由于测试的邮箱为 testhao@126.com ,用户名为 testhao ,密码为 123456 ,需要连接的 POP3 服务器为 pop3.126.com 。我们先用其他邮箱向该邮箱发送一封简单的纯文本邮件,如下图:

SimpleReceiveMails01

SimpleReceiveMails02

实现代码:

  1. importjava.io.BufferedReader;
  2. importjava.io.InputStreamReader;
  3. importjava.util.Properties;
  4. importjavax.mail.Folder;
  5. importjavax.mail.Message;
  6. importjavax.mail.Session;
  7. importjavax.mail.Store;
  8. /**
  9. *简单的邮件接收程序,打印出邮件的原始内容
  10. *@authorhaolloyin
  11. */
  12. publicclassSimpleStoreMails{
  13. publicstaticvoidmain(String[]args)throwsException{
  14. //连接pop3服务器的主机名、协议、用户名、密码
  15. Stringpop3Server="pop3.126.com";
  16. Stringprotocol="pop3";
  17. Stringuser="testhao";
  18. Stringpwd="123456";
  19. //创建一个有具体连接信息的Properties对象
  20. Propertiesprops=newProperties();
  21. props.setProperty("mail.store.protocol",protocol);
  22. props.setProperty("mail.pop3.host",pop3Server);
  23. //使用Properties对象获得Session对象
  24. Sessionsession=Session.getInstance(props);
  25. session.setDebug(true);
  26. //利用Session对象获得Store对象,并连接pop3服务器
  27. Storestore=session.getStore();
  28. store.connect(pop3Server,user,pwd);
  29. //获得邮箱内的邮件夹Folder对象,以"只读"打开
  30. Folderfolder=store.getFolder("inbox");
  31. folder.open(Folder.READ_ONLY);
  32. //获得邮件夹Folder内的所有邮件Message对象
  33. Message[]messages=folder.getMessages();
  34. intmailCounts=messages.length;
  35. for(inti=0;i<mailCounts;i++){
  36. Stringsubject=messages[i].getSubject();
  37. Stringfrom=(messages[i].getFrom()[0]).toString();
  38. System.out.println("第"+(i+1)+"封邮件的主题:"+subject);
  39. System.out.println("第"+(i+1)+"封邮件的发件人地址:"+from);
  40. System.out.println("是否打开该邮件(yes/no)?:");
  41. BufferedReaderbr=newBufferedReader(newInputStreamReader(System.in));
  42. Stringinput=br.readLine();
  43. if("yes".equalsIgnoreCase(input)){
  44. //直接输出到控制台中
  45. messages[i].writeTo(System.out);
  46. }
  47. }
  48. folder.close(false);
  49. store.close();
  50. }
  51. }

测试结果:

1、用户输入是否打开邮件

SimpleReceiveMails03

SimpleReceiveMails04

2、邮件的原始内容,由于并未解析邮件,所以是一些被编码过的内容,需要解析才能读懂。

SimpleReceiveMails05

至此,简单的邮件接收程序就完成了,这与之前用 Windows 下的 telnet 程序在控制台敲入一条条命令来接收邮件相比,简单得多了。


分享到:
评论

相关推荐

    javamail 收发电子邮件

    2. IMAP 和 POP3 协议:对于邮件接收,JavaMail 提供了 `Folder` 和 `Message` 类来处理IMAP或POP3服务器上的邮箱。IMAP 允许用户在线查看邮件,而POP3通常将邮件下载到本地存储。使用 `Store` 类连接到服务器,然后...

    基于JavaMail的电子邮件收发系统设计说明.doc

    JavaMail是一个开源API,用于处理SMTP、IMAP和POP3等邮件协议,使得开发者能够方便地在Java应用程序中实现邮件收发功能。 2.2 Swing和Eclipse Swing是Java的GUI库,用于构建用户界面,而Eclipse是一款广泛使用的...

    JavaMail收发Gmail邮件

    ### JavaMail收发Gmail邮件知识点详解 #### 一、JavaMail简介 JavaMail API是Java平台中的一个标准扩展库,用于发送、接收以及管理电子邮件。它提供了丰富的接口来实现邮件的各种操作,如构建复杂的MIME消息、处理...

    简单的JavaMail的收发邮件程序

    这个简单的JavaMail程序包含了收发邮件的基本功能,对于理解JavaMail的工作原理和使用方法非常有帮助。 首先,让我们从发送邮件的部分开始。在JavaMail中,发送邮件的核心类是`javax.mail.Session`和`javax.mail....

    基于Javamail的邮件收发系统(系统+文档+开题报告+任务书+外文翻译+文献综述+答辩PPT).zip

    通过JavaMail API,开发者可以方便地与SMTP(简单邮件传输协议)、POP3(邮局协议)和IMAP(因特网消息访问协议)服务器交互,实现邮件的创建、发送、接收和管理等功能。 二、邮件收发原理 邮件收发系统的核心在于...

    基于JaVaMail的Web邮件客户端的设计与实现

    例如,设计一个简单的Web邮件系统,包括用户注册、登录、发送邮件、接收邮件等功能,并结合实际需求,探讨如何更好地集成JavaMail API,提高系统的稳定性和用户体验。 #### 八、总结与展望 基于JavaMail的Web邮件...

    使用JAVAMail代发邮件

    这个类称为 MailInfo,包含了邮件的各种信息,例如邮件服务器的主机名和端口号、邮件发送者的地址、邮件接收者的地址、邮件主题、邮件内容、邮件附件等。 在 MailInfo 类中,我们定义了多个成员变量,用于存储邮件...

    基于JavaMail的电子邮件收发系统毕业设计样本.doc

    【基于JavaMail的电子邮件收发系统毕业设计样本】 在当今数字化时代,电子邮件是人们和企业进行沟通的重要工具。JavaMail API 提供了在Java应用程序中发送和接收电子邮件的能力,使得开发人员可以构建功能丰富的...

    JavaMail 具备垃圾邮件过滤功能的邮箱

    JavaMail 是一个强大的Java库,它允许开发人员在Java应用程序中实现邮件的发送、接收以及管理功能。这个项目不仅提供了SMTP、POP3和IMAP协议的支持,还包含了丰富的API,可以方便地处理邮件的MIME编码、附件、HTML...

    javamail发送邮件小程序,类以及写好,只要放包,下载一个就可以

    JavaMail 是一个开源的 Java 库,用于在 Java 应用程序中实现电子邮件的发送和接收。这个小程序可能包含了一套完整的类,可以帮助开发者快速构建邮件发送功能,无需从头开始编写所有必需的代码。 JavaMail 提供了对...

    (Java毕业设计)基于Javamail的邮件收发系统(系统++开题报告+任务书+外文翻译+文献综述+答辩PPT).rar

    (Java毕业设计)基于Javamail的邮件收发系统(Java毕业设计)基于Javamail的邮件收发系统(Java毕业设计)基于Javamail的邮件收发系统(Java毕业设计)基于Javamail的邮件收发系统(Java毕业设计)基于Javamail的邮件收发系统...

    基于javaMail电子邮件系统的设计(含源文件).pdf

    JavaMail 是一个开源的 Java 库,用于在 Java 应用程序中实现电子邮件的发送和接收。这个库封装了多种邮件通信协议,如 IMAP、POP3 和 SMTP,简化了与邮件服务器的交互过程。在设计基于 JavaMail 的电子邮件系统时,...

    基于JavaMail的电子邮件收发系统毕业设计.docx

    系统设计采用模块化架构,包括用户管理模块、邮件发送模块、邮件接收模块、邮件存储模块和界面展示模块。各模块相互独立,便于维护和扩展。 4. 功能设计 4.1 登录功能的设计 用户登录模块负责验证用户的用户名和...

    JavaMail实现真实的收发邮件系统

    JavaMail是一种广泛使用的Java库,用于处理电子邮件的发送和接收,包括SMTP(简单邮件传输协议)、POP3(邮局协议)和IMAP(因特网消息访问协议)。在Struts框架下开发邮件系统,JavaMail提供了强大的功能和灵活性,...

    javamail 邮件解析、接收、发送程序

    很好的邮件处理代码,1.5版本,作为build path放在eclipse里面,就可以用啦! oracle官方推的,很好!jdk1.6版本以上用起来很方便。

    基于Javamail的邮件收发系统(word论文+开题报告+任务书+答辩PPT).zip

    《基于Javamail的邮件收发系统》是一份完整的毕业设计资料,涵盖了从理论到实践的全过程,包括Word论文、开题报告、任务书以及答辩PPT。这个项目主要探讨了如何使用JavaMail API来实现一个高效、稳定的邮件收发系统...

    怎么用JavaMail收取邮件

    JavaMail 是一个强大的开源库,用于在 Java 应用程序中处理电子邮件的发送与接收。在本文中,我们将深入探讨如何使用 JavaMail 收取邮件,包括了解 POP3 和 IMAP 协议以及如何通过 JavaMail API 实现邮件的接收。 ...

    javaMail收发邮件经典程序

    在这个"javaMail收发邮件经典程序"中,我们将深入探讨如何利用JavaMail库进行邮件的发送和接收,并特别关注添加多个附件、指定多个发送人以及接收邮件附件的操作。 首先,要使用JavaMail,我们需要在项目中引入其...

    基于Javamail的邮件收发系统(系统+论文+开题报告+任务书+外文翻译+文献综述+答辩PPT).rar

    JavaMail 是一个开源的 Java API,它允许开发者在 Java 应用程序中发送和接收电子邮件。这个基于 Javamail 的邮件收发系统是利用 JavaMail 提供的接口和类来构建的一个完整的邮件处理系统。该系统可能包含了多个组件...

    学位论文-—基于javamail的电子邮件收发系统.doc

    * 电子邮件收发过程:电子邮件收发过程主要包括邮件的发送、传输和接收三个阶段。 * 服务器参数的设置:服务器参数的设置主要包括邮件服务器的设置、用户名和密码的设置等。 4.1 登录功能的设计 登录功能的设计...

Global site tag (gtag.js) - Google Analytics