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