最近一段时间,使用javamail包作了一个项目,主要是对imap邮件服务器的进行接受,移动,删除等操作。
imap邮件,毕竟不同于pop3邮件,有很多地方需要注意。
1.每个用户都有一个默认的INBOX文件夹
2.可以在目录下创建目录。
3.对于目录进行操作时,有时不必打开目录,有时候需要用只读打开就可以,有时候必须用可读可写模式打开,每个Imap服务器都有所不同,一定要注意。
4.imap邮件,都是按需索取,也就是说,当你得到一个Message的对象时,其实里面什么信息都没有,当你在这个对象里用get方法取得信息时,比如getSubject,那么Message对象会重新访问邮件服务器来得到这个消息的 ,所以在得到所有所需信息之前,不可以关闭目录,更不可以断开连接。
如果实在想在关闭目录或者连接后操作Message对象的话,需要使用Folder对象的fetch方法得到所需信息。
关于IMap的各种命令,可以参照RFC2060
http://rfc.net/rfc2060.html
另外
pop3 : http://rfc.net/rfc1939.html
stmp : http://rfc.net/rfc821.html