实现了 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 。我们先用其他邮箱向该邮箱发送一封简单的纯文本邮件,如下图:
实现代码:
- importjava.io.BufferedReader;
- importjava.io.InputStreamReader;
- importjava.util.Properties;
- importjavax.mail.Folder;
- importjavax.mail.Message;
- importjavax.mail.Session;
- importjavax.mail.Store;
- publicclassSimpleStoreMails{
- publicstaticvoidmain(String[]args)throwsException{
- Stringpop3Server="pop3.126.com";
- Stringprotocol="pop3";
- Stringuser="testhao";
- Stringpwd="123456";
-
- Propertiesprops=newProperties();
- props.setProperty("mail.store.protocol",protocol);
- props.setProperty("mail.pop3.host",pop3Server);
-
- Sessionsession=Session.getInstance(props);
- session.setDebug(true);
-
- Storestore=session.getStore();
- store.connect(pop3Server,user,pwd);
-
- Folderfolder=store.getFolder("inbox");
- folder.open(Folder.READ_ONLY);
-
- Message[]messages=folder.getMessages();
-
- intmailCounts=messages.length;
- for(inti=0;i<mailCounts;i++){
-
- Stringsubject=messages[i].getSubject();
- Stringfrom=(messages[i].getFrom()[0]).toString();
-
- System.out.println("第"+(i+1)+"封邮件的主题:"+subject);
- System.out.println("第"+(i+1)+"封邮件的发件人地址:"+from);
-
- System.out.println("是否打开该邮件(yes/no)?:");
- BufferedReaderbr=newBufferedReader(newInputStreamReader(System.in));
- Stringinput=br.readLine();
- if("yes".equalsIgnoreCase(input)){
- messages[i].writeTo(System.out);
- }
- }
- folder.close(false);
- store.close();
- }
- }
测试结果:
1、用户输入是否打开邮件
2、邮件的原始内容,由于并未解析邮件,所以是一些被编码过的内容,需要解析才能读懂。
至此,简单的邮件接收程序就完成了,这与之前用 Windows 下的 telnet 程序在控制台敲入一条条命令来接收邮件相比,简单得多了。
分享到:
相关推荐
2. IMAP 和 POP3 协议:对于邮件接收,JavaMail 提供了 `Folder` 和 `Message` 类来处理IMAP或POP3服务器上的邮箱。IMAP 允许用户在线查看邮件,而POP3通常将邮件下载到本地存储。使用 `Store` 类连接到服务器,然后...
JavaMail是一个开源API,用于处理SMTP、IMAP和POP3等邮件协议,使得开发者能够方便地在Java应用程序中实现邮件收发功能。 2.2 Swing和Eclipse Swing是Java的GUI库,用于构建用户界面,而Eclipse是一款广泛使用的...
### JavaMail收发Gmail邮件知识点详解 #### 一、JavaMail简介 JavaMail API是Java平台中的一个标准扩展库,用于发送、接收以及管理电子邮件。它提供了丰富的接口来实现邮件的各种操作,如构建复杂的MIME消息、处理...
这个简单的JavaMail程序包含了收发邮件的基本功能,对于理解JavaMail的工作原理和使用方法非常有帮助。 首先,让我们从发送邮件的部分开始。在JavaMail中,发送邮件的核心类是`javax.mail.Session`和`javax.mail....
通过JavaMail API,开发者可以方便地与SMTP(简单邮件传输协议)、POP3(邮局协议)和IMAP(因特网消息访问协议)服务器交互,实现邮件的创建、发送、接收和管理等功能。 二、邮件收发原理 邮件收发系统的核心在于...
例如,设计一个简单的Web邮件系统,包括用户注册、登录、发送邮件、接收邮件等功能,并结合实际需求,探讨如何更好地集成JavaMail API,提高系统的稳定性和用户体验。 #### 八、总结与展望 基于JavaMail的Web邮件...
这个类称为 MailInfo,包含了邮件的各种信息,例如邮件服务器的主机名和端口号、邮件发送者的地址、邮件接收者的地址、邮件主题、邮件内容、邮件附件等。 在 MailInfo 类中,我们定义了多个成员变量,用于存储邮件...
【基于JavaMail的电子邮件收发系统毕业设计样本】 在当今数字化时代,电子邮件是人们和企业进行沟通的重要工具。JavaMail API 提供了在Java应用程序中发送和接收电子邮件的能力,使得开发人员可以构建功能丰富的...
JavaMail 是一个强大的Java库,它允许开发人员在Java应用程序中实现邮件的发送、接收以及管理功能。这个项目不仅提供了SMTP、POP3和IMAP协议的支持,还包含了丰富的API,可以方便地处理邮件的MIME编码、附件、HTML...
JavaMail 是一个开源的 Java 库,用于在 Java 应用程序中实现电子邮件的发送和接收。这个小程序可能包含了一套完整的类,可以帮助开发者快速构建邮件发送功能,无需从头开始编写所有必需的代码。 JavaMail 提供了对...
(Java毕业设计)基于Javamail的邮件收发系统(Java毕业设计)基于Javamail的邮件收发系统(Java毕业设计)基于Javamail的邮件收发系统(Java毕业设计)基于Javamail的邮件收发系统(Java毕业设计)基于Javamail的邮件收发系统...
JavaMail 是一个开源的 Java 库,用于在 Java 应用程序中实现电子邮件的发送和接收。这个库封装了多种邮件通信协议,如 IMAP、POP3 和 SMTP,简化了与邮件服务器的交互过程。在设计基于 JavaMail 的电子邮件系统时,...
系统设计采用模块化架构,包括用户管理模块、邮件发送模块、邮件接收模块、邮件存储模块和界面展示模块。各模块相互独立,便于维护和扩展。 4. 功能设计 4.1 登录功能的设计 用户登录模块负责验证用户的用户名和...
JavaMail是一种广泛使用的Java库,用于处理电子邮件的发送和接收,包括SMTP(简单邮件传输协议)、POP3(邮局协议)和IMAP(因特网消息访问协议)。在Struts框架下开发邮件系统,JavaMail提供了强大的功能和灵活性,...
很好的邮件处理代码,1.5版本,作为build path放在eclipse里面,就可以用啦! oracle官方推的,很好!jdk1.6版本以上用起来很方便。
《基于Javamail的邮件收发系统》是一份完整的毕业设计资料,涵盖了从理论到实践的全过程,包括Word论文、开题报告、任务书以及答辩PPT。这个项目主要探讨了如何使用JavaMail API来实现一个高效、稳定的邮件收发系统...
JavaMail 是一个强大的开源库,用于在 Java 应用程序中处理电子邮件的发送与接收。在本文中,我们将深入探讨如何使用 JavaMail 收取邮件,包括了解 POP3 和 IMAP 协议以及如何通过 JavaMail API 实现邮件的接收。 ...
在这个"javaMail收发邮件经典程序"中,我们将深入探讨如何利用JavaMail库进行邮件的发送和接收,并特别关注添加多个附件、指定多个发送人以及接收邮件附件的操作。 首先,要使用JavaMail,我们需要在项目中引入其...
JavaMail 是一个开源的 Java API,它允许开发者在 Java 应用程序中发送和接收电子邮件。这个基于 Javamail 的邮件收发系统是利用 JavaMail 提供的接口和类来构建的一个完整的邮件处理系统。该系统可能包含了多个组件...
* 电子邮件收发过程:电子邮件收发过程主要包括邮件的发送、传输和接收三个阶段。 * 服务器参数的设置:服务器参数的设置主要包括邮件服务器的设置、用户名和密码的设置等。 4.1 登录功能的设计 登录功能的设计...