javamail 获取发件箱、收件箱、草稿箱等
原创
javamail
获取发件箱、收件箱、草稿箱的代很简单:
概述
我们在获取收件箱的代码是:
Folder folder = store.getFolder("INBOX");
但是我们在获取发件箱、与草稿箱时出现异常,这时就与邮件服务器的文件夹有关;
可以这样获取所有的文件夹:
Folder defaultFolder = store.getDefaultFolder();
Folder[] allFolder = defaultFolder.list();
通过调试或者迭代出来文件夹名称再通过找出来的文件夹名称获取发件箱与草稿箱集合:Folder folder = store.getFolder("这里是迭代找出来的文件夹名称");
根据获取的文件夹去得到里面的文件。
案例
这里需要注意的是,根据邮件协议,POP3 是只能读取收件箱的,所以如果需要读取发件箱、草稿箱或者垃圾箱这些文件夹,需要使用 IMAP 协议。
@Test
public void testIMAP() throws MessagingException, FileNotFoundException, IOException
{
Properties props = new Properties();
props.setProperty("mail.store.protocol", "imap");
props.setProperty("mail.imap.host", "192.190.10.177");
Session session = Session.getDefaultInstance(props);
Store store = session.getStore("imap");
store.connect("master@daimafans.com", "123456");
Folder defaultFolder = store.getDefaultFolder();
Folder[] folders = defaultFolder.list();
System.out.println("一共有文件夹个数:" + folders.length);
System.out.println("==============================================================================");
for (int i = 0; i < folders.length; i++)
{
Folder folder = folders[i];
System.out.println(i + "\t" + folder.getFullName());
// 全部邮件数
int messageCount = folder.getMessageCount();
System.out.println("此文件夹邮件总数:" + messageCount);
System.out.println("==============================================================================");
}
}
案例输出
一共有文件夹个数:6
==============================================================================
0 INBOX
此文件夹邮件总数:4
==============================================================================
1 Drafts
此文件夹邮件总数:0
==============================================================================
2 Sent Items
此文件夹邮件总数:3
==============================================================================
3 Trash
此文件夹邮件总数:0
==============================================================================
4 Junk E-mail
此文件夹邮件总数:0
==============================================================================
5 Virus Items
此文件夹邮件总数:0
==============================================================================