您的位置:首页 > 编程语言 > Java开发

【Java mail 入门教程】第三讲 接收邮件

2012-09-10 12:50 330 查看
第三讲的接收邮件情况跟发送邮件一样,首先建立Session,然后取得相对应的协议(pop/imap)的Store(代表了存储邮件的邮件服务器),在连接Store的过程中需要指定host,username,password,连接Store成功后会返回Folder对象,最后通过Folder对象的getMessages()方法获取邮件信息。在读取邮件内容后,别忘记了关闭Folder和Store。

folder.close(true);

store.close();

传递给Folder.close()方法的类型参数表示是否在删除操作邮件后更新Folder。

注意:在连接前检查自己的POP,IMAP邮件服务有没有打开。最好尝试一下 ping pop.qq.com如果有返回数据表证明服务器可以连接。

package com.mail;
/**
* 接收邮件
*/
import java.util.Properties;

import javax.mail.Folder;
import javax.mail.Message;
import javax.mail.Session;
import javax.mail.Store;

public class RevMail {

public static void main(String[] args) throws Exception {
Properties props = new Properties();
Session session = Session.getDefaultInstance(props);
//        Store store = session.getStore("imap");
//取得pop3协议的邮件服务器
Store store = session.getStore("pop3");
//连接pop.qq.com邮件服务器
store.connect("pop.qq.com", "343820302@qq.com", "********");
//返回文件夹对象
Folder folder = store.getFolder("INBOX");
//设置仅读
folder.open(Folder.READ_ONLY);
//获取信息
Message message[] = folder.getMessages();
for(int i=message.length-1; i>0; i--) {
//打印主题
System.out.println(message[i].getSubject());
System.out.println("-----------------------------------------");
}
folder.close(true);
store.close();

}
}


PS:如果用imap连接,请用这段代码Store store = session.getStore("imap"); store.connect("imap.qq.com", "343820302@qq.com", "*********");

有些邮件服务器不支持imap协议的,请大家注意

如果有何问题,请留意大家一起探讨
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: