当前位置: 技术问答>java相关
javamail无法判断新邮件
来源: 互联网 发布时间:2017-04-29
本文导语: javamail中: 可以正确连接邮件服务器,可以读取邮件的总数,标题,内容等信息. 但是无法判断邮件是否为新邮件 folder.getUnreadMessageCount() folder.getNewMessageCount() 以上两个方法无效,前者的数量与全部邮件数量相同.后者一直为...
javamail中:
可以正确连接邮件服务器,可以读取邮件的总数,标题,内容等信息.
但是无法判断邮件是否为新邮件
folder.getUnreadMessageCount()
folder.getNewMessageCount()
以上两个方法无效,前者的数量与全部邮件数量相同.后者一直为0
message.setFlag(Flags.Flag.DELETED,true)
无效.事实上,我试图取得message的flags,但是似乎所有的flags都是空的,设置也没用
我不太懂邮件服务器的工作原理,有文章说pop3不负责判断新邮件,判断新邮件的
工作是在本地应用程序进行的.是这样吗?那么上述的几个方法的作用是什么?
我现在的目的是:判断新邮件的个数,对指定邮件进行删除,
请有经验的人指点,谢谢了.
可以正确连接邮件服务器,可以读取邮件的总数,标题,内容等信息.
但是无法判断邮件是否为新邮件
folder.getUnreadMessageCount()
folder.getNewMessageCount()
以上两个方法无效,前者的数量与全部邮件数量相同.后者一直为0
message.setFlag(Flags.Flag.DELETED,true)
无效.事实上,我试图取得message的flags,但是似乎所有的flags都是空的,设置也没用
我不太懂邮件服务器的工作原理,有文章说pop3不负责判断新邮件,判断新邮件的
工作是在本地应用程序进行的.是这样吗?那么上述的几个方法的作用是什么?
我现在的目的是:判断新邮件的个数,对指定邮件进行删除,
请有经验的人指点,谢谢了.
|
javamail中不能确定新邮件;
解决方法:
(1)第一次收邮件时,每个邮件都是新的;
(2)(在你的系统中)保存每一个邮件的UID;
(3)邮件读过之后,就保存该邮件的标识(已读);
(4)再次收邮件时,读出UID,在你的系统中查找是否存在该UID,若没有,则为新.
...
解决方法:
(1)第一次收邮件时,每个邮件都是新的;
(2)(在你的系统中)保存每一个邮件的UID;
(3)邮件读过之后,就保存该邮件的标识(已读);
(4)再次收邮件时,读出UID,在你的系统中查找是否存在该UID,若没有,则为新.
...
|
if (message[i].getFlags().toString().equals("javax.mail.Flags@0")||message[i].getFlags().toString().equals("javax.mail.Flags@10")){
out_flag[0]=true;//新邮件
}else if(message[i].getFlags().toString().equals("javax.mail.Flags@20")){
out_flag[0]=false;//旧邮件
}
out_flag[0]=true;//新邮件
}else if(message[i].getFlags().toString().equals("javax.mail.Flags@20")){
out_flag[0]=false;//旧邮件
}
|
javamail中不能确定新邮件