javaMail实现收发邮件(四)
JavaMail API中也提供了一些专门的类来对邮件的接收进行相关的操作,在介绍这些类之前,我们先来了解下邮件接收API的体系结构,JavaMai 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(); // 关闭连接对象
}
}
MailReceives
可以看到控制台输出的是邮件的原始内容,还未被解析。
javaMail实现收发邮件(四)的更多相关文章
- javaMail实现收发邮件(三)
JavaMail API中定义了一个java.mail.Transport类,它专门用于执行邮件发送任务,这个类的实例对象封装了某种邮件发送协议的底层实施细节,应用程序调用这个类中的方法就可以把Mes ...
- javaMail实现收发邮件(二)
JavaMail API常用类 JavaMail API使用javax.mail.Message类来表示一封邮件,Message类是一个抽象类,所以我们需要使用其子类javax.mail.intern ...
- javaMail实现收发邮件(一)
电子邮件的传输过程 电子邮件系统采用客户/服务器模式.电子邮件传送需要用到以下3个重要模块:MUA(Mail User Agent,邮件用户代理):用户通过它与电子邮件服务器打交道.MUA实际上就是邮 ...
- javaMail实现收发邮件(五)
控制台打印出的内容,我们无法阅读,其实,让我们自己来解析一封复杂的邮件是很不容易的,邮件里面格式.规范复杂得很.不过,我们所用的浏览器内置了解析各种数据类型的数据处理模块,我们只需要在把数据流传输给浏 ...
- java中javamail收发邮件实现方法
概述 1.邮件相关的标准 厂商所提供的 JavaMail 服务程序可以有选择地实现某些邮件协议,常见的邮件协议包括: SMTP(Simple Mail Transfer Protocol) :即简单邮 ...
- JavaMail实现带附件的收发邮件
一.前言 参考博客: http://blog.csdn.net/xietansheng/article/details/51722660 http://www.cnblogs.com/HigginCu ...
- 用 Apache James 搭建邮件服务器来收发邮件实践(一)(转)
Apache James 简称 James, 是 Java Apache Mail Enterprise Server的缩写.James 是100%基于Java的电子邮件服务器.它是一种独立的邮件服务 ...
- JavaMail学习之一-邮件传输协议
协议:规定好的格式就是协议.就像http协议有请求协议和响应协议,邮件传输也分为发.收邮件的协议. 邮件协议分3种: 发邮件的:SMTP (Simple Mail Transport Protoca ...
- DouNet学习_收发邮件
一.收发邮件 --->第一步:发邮件首先要有发送者的邮箱地址和登录的密码才能发送 这些都写在APP里 不要写死 --->第二步:发邮件就要有网络,要添加net.Mail命名空间 要发送的 ...
随机推荐
- Python连接Oracle数据查询导出结果
python连接oracle,需用用到模块cx_oracle,可以直接pip安装,如网络不好,可下载离线后本地安装 cx_oracle项目地址:https://pypi.org/project/cx_ ...
- 【CentOS】PostgreSQL安装与设定
本教程适合Centos6.7或者RedHat. PostgreSQL安装 1.Postgresql安装包确认 yum list postgresql* postgresql-server.x86_64 ...
- Oracle数据库容量使用情况调查
-- 剩余容量 select sum(bytes) FREE from DBA_FREE_SPACE where tablespace_name ='xxx'; -- 总容量 select sum(b ...
- Windows自定义运行命令
1 打开注册表regedit 2 找到:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths 3 新增项,自己运 ...
- Ubuntu14.04安装 ROS 安装步骤和问题总结
参考: 1.http://wiki.ros.org/indigo/Installation/Ubuntu 2.安装出现依赖库问题: https://answers.ros.org/question/3 ...
- 图解Tomcat
- Linux、Docker安装Nginx
Docker安装Nginx #docker images nginx #docker search nginx #docker pull nginx #docker run -it -p 8084:8 ...
- MSVC中C++ UTF8中文编码处理探究
字符编码的问题,上大学那会儿就遇到过,一直都是云里雾里,没太搞清楚.最近又遇到了问题,想在C++的控制台上输出Utf-8编码的汉字字节流.尝试了好多次都是乱码,后来花了些时间查查资料,又和同事交流了一 ...
- JavaWeb——<c:forEach varStatus="status">
我们常会用c标签来遍历需要的数据,为了方便使用,varStatus属性可以方便我们实现一些与行数相关的功能,如:奇数行.偶数行差异:最后一行特殊处理等等.先就varStatus属性常用参数总结下: $ ...
- redis-cli显示中文
在启动redis-cli时在其后面加上--raw参数即可启动后 再显示就正常了