java阅读MS Outlook收件箱

时间:2015-02-20 14:49:03

标签: java outlook

我想使用java(SE)在MS Outlook(2010)中读取我的收件箱,然后将邮件/电子邮件移动到另一个文件夹。我曾尝试在网上搜索,但发现只有许可的解决方案或旧的几年。有没有人有这个步骤的解决方案?非常感谢您的帮助!

1 个答案:

答案 0 :(得分:4)

可以使用javax.mail完成,但很大程度上取决于服务器协议和身份验证等。

无论如何,这是一个片段(假设是imap):

设置您的属性:

Properties props = new Properties();        
props.setProperty("mail.store.protocol", "imap");
props.setProperty("mail.imap.user", <user>);
props.setProperty("mail.imap.host", <host>);
props.setProperty("mail.imap.port", <port 143>);
...

获取会话并连接

Session mailSession = Session.getInstance(props);   
Store mailStore = mailSession.getStore("imap");
mailStore.connect(<host>, <user>, <passwd>);                    
Folder dFolder = mailStore.getDefaultFolder();
Folder inbox = dFolder.getFolder(<connectFolder=INBOX?>);
inbox.open(Folder.READ_WRITE);

 // Open destination folder, create if reqd
Folder destfolder = mailStore.getFolder(<destination folder>);
if (!destfolder.exists())
   destfolder.create(Folder.HOLDS_MESSAGES);

Message []inMessages = inbox.getMessages();
if (inMessages .length != 0) {
    inbox.copyMessages(inMessages , destfolder);

    for (int i=0; i< inMessages.length; i++) { 
      // Custom Processor which readsMessages and performs some action.
      // getProcessor().readMessage(inMessages[i]);
       inMessages[i].setFlag(Flags.Flag.DELETED, true);
    }
}

希望这有帮助