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对象返回。
接下来我们⽤以上类来接收邮件
1import java.util.Properties;
2
3import javax.mail.Address;
4import javax.mail.Folder;
5import javax.mail.Message;
6import javax.mail.Session;
7import javax.mail.Store;
物以类聚人以分8
9class MailReceives {
10public static void main(String[] args) throws Exception {
11// 定义连接POP3服务器的属性信息
12 String pop3Server = "pop.qq";
13 String protocol = "pop3";
14 String username = "123456@qq";
15 String password = "****************"; // QQ邮箱的SMTP的授权码,
16
17 Properties props = new Properties();
18 props.setProperty("ansport.protocol", protocol); // 使⽤的协议(JavaMail规范要求)
19 props.setProperty("mail.smtp.host", pop3Server); // 发件⼈的邮箱的 SMTP服务器地址
20
21// 获取连接
22 Session session = DefaultInstance(props);
23 session.setDebug(false);
24
25// 获取Store对象
26 Store store = Store(protocol);
27 t(pop3Server, username, password); // POP3服务器的登陆认证
28
29// 通过POP3协议获得Store对象调⽤这个⽅法时,邮件夹名称只能指定为"INBOX"
30 Folder folder = Folder("INBOX");// 获得⽤户的邮件帐户
31 folder.open(Folder.READ_WRITE); // 设置对邮件帐户的访问权限
明日之后无人机32
33 Message[] messages = Messages();// 得到邮箱帐户中的所有邮件
手机内存垃圾清理34
35for (Message message : messages) {
36 String subject = Subject();// 获得邮件主题
37 Address from = (Address) From()[0];// 获得发送者地址
38 System.out.println("邮件的主题为: " + subject + "\t发件⼈地址为: " + from);
39 System.out.println("邮件的内容为:");
40 message.writeTo(System.out);// 输出邮件内容到控制台
41 }
成都加成顾问有限公司英雄联盟代练封号42
43 folder.close(false);// 关闭邮件夹对象
44 store.close(); // 关闭连接对象
45 }
46 }
控制台输出结果:
可以看到控制台输出的是邮件的原始内容,还未被解析,所以需要经过解析才能阅读,下⼀篇将讲解如何解析邮件。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论