电子邮件Java Mail api,在消息处理过程中失去连接
在java mail(使用java mail API)应用程序中,我们首先连接到邮件服务器,获取消息,处理标题,然后像往常一样使用pop3处理消息正文和附件
Session session = Session.getInstance(props, null);
Store store = session.getStore(urln);
store.connect();
Folder f = store.getFolder("INBOX");
f.open(READ);
Messages m = f.getMessages(..);
for (Message m : messages) {
if (!store.isConnected()) {
//raise exception
}
processSubject();
processFrom();
processBodyAndAttachments();
..
}
该实现在大多数环境下都可以正常工作,但在某些客户上,storeconnection在for循环的过程中丢失。我们可以在日志中看到raises异常。我的问题是:
另外,邮件服务器有时可以拒绝新的连接,但确实如此 它会终止当前的生活连接(可能是因为太多) 连接或断开旧的连接以访问新的?)
当商店断开连接时,文件夹也会关闭吗
检查文件夹是否更好
在for循环中,连接可能会到处丢失,但它不会 似乎是一个很好的做法,把连接检查在世界各地 循环,这会使代码变脏,还会导致性能问题, 试一试拦截并检查是否正确是一种好的练习吗 例外情况?(文件夹关闭)或其他建议?哪些例外 该怎么办?在某些情况下,信息可能不正确 可解析,但连接正常
添加一个断开连接的侦听器怎么样
# 1 楼答案