我们需要为不支持IMAP的Hotmail构建一个客户端。 据我了解,您必须使用带有POP3的交换,但POP3不支持将邮件从一个文件夹移动到另一个文件夹。 我们需要以下功能:
- 能够阅读邮件而不将其标记为"已读"
- 能够删除邮件
- 能够将邮件从收件箱移动到另一个文件夹并标记为已读
有什么方法可以让它工作吗?
简短的回答,否。
从Microsoft获得动态同步协议许可。
有一个用于Hotmail的Outlook连接器。也许有大量的JNI,但请先检查许可证。
更新:Outlook 现在支持 IMAP。Hotmail使用相同的服务器。
你可以用JavaMail做你需要的一切。 这是接口
下面是从收件箱获取所有未读邮件并将其标记为已读的示例。 查看将邮件移动到新文件夹的文件夹类(特别是 copyMessages()
方法)。
import java.util.Properties;
import javax.mail.*;
import javax.mail.search.FlagTerm;
public class Driver {
public static void main(String[] args){
// Create properties (disable security checks on server)
Properties props = new Properties();
// Get session
Session session = Session.getDefaultInstance(props, null);
try{
// Get the store
Store store = session.getStore("pop3");
store.connect("servername", "username", "password");
//connection configuration
Folder folder = store.getFolder("INBOX");
folder.open(Folder.READ_WRITE);
//get all unread messages in the inbox
FlagTerm ft = new FlagTerm(new Flags(Flags.Flag.SEEN), true);
Message[] messages = folder.search(ft);
for (int i = messages.length -1; i>=0; i--) {
messages[i].setFlag(Flags.Flag.SEEN, true);
}
// Close connection
folder.close(false);
store.close();
}
catch(Exception e){
e.printStackTrace();
}
}