javamail怎样监听新邮件

时间:2022-08-31 20:52:37
研究了一下,发现getUnreadMessageCount每次都是计算所有邮件,getNewMessageCount总是0,在网上看到使用
inbox.addMessageCountListener(new MessageCountListener(){}
这个有怎么用呢,
如果直接写一个监听器该怎样写呢?

谢谢了

12 个解决方案

#1


保存现有邮件数量,然后在监听器中进行比较即可获知有新邮件到达

#2


如果是服务器端做,当然没问题,客户端基本都是定时查询的。

#3



folder = store.getDefaultFolder();//获取默认文件夹
            
            if (folder == null) throw new Exception("No default folder");
            
            folder = folder.getFolder("INBOX");//链接收件箱
            
            if (folder == null) throw new Exception("No POP3 INBOX");
            
            folder.open(Folder.READ_ONLY);//使用只读方式打开收件箱
            
            Message[] msgs = folder.getMessages();//得到文件夹信息,获取邮件列表

这个得到的应该是新邮件,然后定时接收就可以了,

#4


javamail是消息驱动的,并发效率高,但是很难得到发送邮件的实时信息,所以我通过轮询来实现。发出去一封,反复查询收件箱,直到查到为止。

#5


现在我开了一个线程每隔一段时间来扫描一次是否有邮件到,这是现在没扫描一次出现javax.mail.AuthenticationFailedException: maildir in use 的问题,请问这个maildir in use 是什么意思?

#6


学习~~

#7


上面出现javax.mail.AuthenticationFailedException: maildir in use 的原因是没有关闭folder和store,

#8


该回复于2015-05-26 13:22:47被管理员删除

#9


改为sina邮箱后,又出现以下错误:
javax.mail.MessagingException: Connect failed;
  nested exception is:
java.net.SocketException: Socket is not connected: connect
at com.sun.mail.pop3.POP3Store.protocolConnect(POP3Store.java:120)
at javax.mail.Service.connect(Service.java:233)
at javax.mail.Service.connect(Service.java:134)

搞不懂了,写一个收邮件的程序怎么就这么困难呢

#10


这是什么东西
引用 8 楼 java2000_net_test 的回复:
此回复为自动发出,仅用于显示而已,并无任何其他特殊作用 
楼主截止到2008-06-18 10:27:37的汇总数据: 
发帖数:7 
结贴数:6 
结贴率:85.71% 
楼主加油

#11


http://topic.csdn.net/u/20080614/18/da122169-3402-4977-b6df-f1330f5b7b55.html

看看我写的.  我的是内网.你把验证换成外网试试

#12


散分,虽然问题没有解决

#1


保存现有邮件数量,然后在监听器中进行比较即可获知有新邮件到达

#2


如果是服务器端做,当然没问题,客户端基本都是定时查询的。

#3



folder = store.getDefaultFolder();//获取默认文件夹
            
            if (folder == null) throw new Exception("No default folder");
            
            folder = folder.getFolder("INBOX");//链接收件箱
            
            if (folder == null) throw new Exception("No POP3 INBOX");
            
            folder.open(Folder.READ_ONLY);//使用只读方式打开收件箱
            
            Message[] msgs = folder.getMessages();//得到文件夹信息,获取邮件列表

这个得到的应该是新邮件,然后定时接收就可以了,

#4


javamail是消息驱动的,并发效率高,但是很难得到发送邮件的实时信息,所以我通过轮询来实现。发出去一封,反复查询收件箱,直到查到为止。

#5


现在我开了一个线程每隔一段时间来扫描一次是否有邮件到,这是现在没扫描一次出现javax.mail.AuthenticationFailedException: maildir in use 的问题,请问这个maildir in use 是什么意思?

#6


学习~~

#7


上面出现javax.mail.AuthenticationFailedException: maildir in use 的原因是没有关闭folder和store,

#8


该回复于2015-05-26 13:22:47被管理员删除

#9


改为sina邮箱后,又出现以下错误:
javax.mail.MessagingException: Connect failed;
  nested exception is:
java.net.SocketException: Socket is not connected: connect
at com.sun.mail.pop3.POP3Store.protocolConnect(POP3Store.java:120)
at javax.mail.Service.connect(Service.java:233)
at javax.mail.Service.connect(Service.java:134)

搞不懂了,写一个收邮件的程序怎么就这么困难呢

#10


这是什么东西
引用 8 楼 java2000_net_test 的回复:
此回复为自动发出,仅用于显示而已,并无任何其他特殊作用 
楼主截止到2008-06-18 10:27:37的汇总数据: 
发帖数:7 
结贴数:6 
结贴率:85.71% 
楼主加油

#11


http://topic.csdn.net/u/20080614/18/da122169-3402-4977-b6df-f1330f5b7b55.html

看看我写的.  我的是内网.你把验证换成外网试试

#12


散分,虽然问题没有解决