JavaMail入门教程之接收邮件(4)
2016-12-22 15:47
381 查看
上一篇JavaMail入门第三篇 发送邮件中,我们学会了如何用JavaMail API提供的Transport类发送邮件,同样,JavaMail API中也提供了一些专门的类来对邮件的接收进行相关的操作,在介绍这些类之前,我们先来了解下邮件接收API的体系结构,JavaMail API中定义了一个java.mail.Store类,它用于执行邮件的接收任务,我们在程序中调用这个类中的方法可以获取邮箱中的各个邮件夹的信息。JavaMail使用Folder对象表示邮件夹,通过Folder对象的方法可以获取邮件夹中的所有邮件信息,而我们知道邮件的信息可以使用Message对象来表示,Message类中就包含了操作邮件的各种方法了,例如获取邮件的发送者,主题,正文内容,发送时间等,它们工作关系如下:
1、从Session对象中获得实现了某种邮件发送协议的Store对象;
2、登录邮箱,连接上POP3或者IMAP4服务器;
3、调用Store的getFolder方法,获取邮箱中的某个邮件夹的Folder对象;
4、调用Folder对象中的getMessage或getMessages方法,获取邮件夹中的某一封邮件或者是所有邮件,每一封的邮件以一个Message对象返回。
接下来我们用以上类来接收邮件
import java.util.Properties; import javax.mail.Address; import javax.mail.Folder; import javax.mail.Message; import javax.mail.Session; import javax.mail.Store; class MailReceives { public static void main(String[] args) throws Exception { // 定义连接POP3服务器的属性信息 String pop3Server = "pop.qq.com"; String protocol = "pop3"; String username = "123456@qq.com"; String password = "****************"; // QQ邮箱的SMTP的授权码,什么是授权码,它又是如何设置? Properties props = new Properties(); props.setProperty("mail.transport.protocol", protocol); // 使用的协议(JavaMail规范要求) props.setProperty("mail.smtp.host", pop3Server); // 发件人的邮箱的 SMTP服务器地址 // 获取连接 Session session = Session.getDefaultInstance(props); session.setDebug(false); // 获取Store对象 Store store = session.getStore(protocol); store.connect(pop3Server, username, password); // POP3服务器的登陆认证 // 通过POP3协议获得Store对象调用这个方法时,邮件夹名称只能指定为"INBOX" Folder folder = store.getFolder("INBOX");// 获得用户的邮件帐户 folder.open(Folder.READ_WRITE); // 设置对邮件帐户的访问权限 Message[] messages = folder.getMessages();// 得到邮箱帐户中的所有邮件 for (Message message : messages) { String subject = message.getSubject();// 获得邮件主题 Address from = (Address) message.getFrom()[0];// 获得发送者地址 System.out.println("邮件的主题为: " + subject + "\t发件人地址为: " + from); System.out.println("邮件的内容为:"); message.writeTo(System.out);// 输出邮件内容到控制台 } folder.close(false);// 关闭邮件夹对象 store.close(); // 关闭连接对象 } }
控制台输出结果:
可以看到控制台输出的是邮件的原始内容,还未被解析,所以需要经过解析才能阅读,下一篇JavaMail入门第五篇 解析邮件将讲解如何解析邮件。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。
您可能感兴趣的文章:
相关文章推荐
- 基于JavaMail API收发邮件的方法
- 解析电子邮件的基本概念及JavaMail API邮件功能使用
- 基于JavaMail的常用类详细介绍
- JavaMail邮件简介及API概述第一篇
- Java使用JavaMail API发送和接收邮件的代码示例
- java中javamail收发邮件实现方法
- JavaMail实现发送超文本(html)格式邮件的方法
- java中javamail发送带附件的邮件实现方法
- Java中使用JavaMail多发邮件及邮件的验证和附件实现
- 详解Java编程中JavaMail API的使用
- JavaWeb中JavaMail创建邮件和发送邮件
- Java基于JavaMail实现向QQ邮箱发送邮件
- Java使用JavaMail发送邮件的方法
- JavaWeb中使用JavaMail实现发送邮件功能实例详解
- JavaMail入门教程之发送邮件(3)
- 使用JavaMail发送邮件保证成功的方法
- JavaMail入门教程之创建邮件(2)
- 如何使用JavaMail发送邮件
- JavaMail发送google email
- JavaMail:带附件的邮件格式解析