summaryrefslogtreecommitdiff
path: root/addons/fetchmail
diff options
context:
space:
mode:
authorYogesh (OpenERP) <ysa@tinyerp.com>2011-02-28 14:33:44 +0530
committerYogesh (OpenERP) <ysa@tinyerp.com>2011-02-28 14:33:44 +0530
commit0d5cc2663c9fc664f129ba72fe92d2caa17cfc3f (patch)
treef4320bf376191ab58b37d1e6b9975af67d6e4537 /addons/fetchmail
parent5b28eaa8689e8c02dff790afc2d84f644f3ec059 (diff)
[IMP] fetchmail :- imap and pop server fetchmail keep in try and server quit in finally block.
bzr revid: ysa@tinyerp.com-20110228090344-uf965sg7hvkrv7o2
Diffstat (limited to 'addons/fetchmail')
-rw-r--r--addons/fetchmail/fetchmail.py23
1 files changed, 13 insertions, 10 deletions
diff --git a/addons/fetchmail/fetchmail.py b/addons/fetchmail/fetchmail.py
index 892313c0102..bcd4448beca 100644
--- a/addons/fetchmail/fetchmail.py
+++ b/addons/fetchmail/fetchmail.py
@@ -167,8 +167,8 @@ class email_server(osv.osv):
for server in self.browse(cr, uid, ids, context=context):
count = 0
user = server.user_id.id or uid
- try:
- if server.type == 'imap':
+ if server.type == 'imap':
+ try:
imap_server = self.button_confirm_login(cr, uid, [server.id], context=context)
imap_server.select()
result, data = imap_server.search(None, '(UNSEEN)')
@@ -182,12 +182,17 @@ class email_server(osv.osv):
count += 1
logger.notifyChannel('imap', netsvc.LOG_INFO, 'fetchmail fetch/process %s email(s) from %s' % (count, server.name))
+ except Exception, e:
+ logger.notifyChannel(server.type, netsvc.LOG_WARNING, '%s' % (tools.ustr(e)))
+
+ finally:
imap_server.close()
imap_server.logout()
- elif server.type == 'pop':
+ elif server.type == 'pop':
+ try:
pop_server = self.button_confirm_login(cr, uid, [server.id], context=context)
- pop_server.list()
(numMsgs, totalSize) = pop_server.stat()
+ pop_server.list()
for num in range(1, numMsgs + 1):
(header, msges, octets) = pop_server.retr(num)
msg = '\n'.join(msges)
@@ -196,14 +201,12 @@ class email_server(osv.osv):
action_pool.run(cr, user, [server.action_id.id], {'active_id': res_id, 'active_ids':[res_id]})
pop_server.dele(num)
-
- pop_server.quit()
-
logger.notifyChannel('imap', netsvc.LOG_INFO, 'fetchmail fetch %s email(s) from %s' % (numMsgs, server.name))
+ except Exception, e:
+ logger.notifyChannel(server.type, netsvc.LOG_WARNING, '%s' % (tools.ustr(e)))
- except Exception, e:
- logger.notifyChannel(server.type, netsvc.LOG_WARNING, '%s' % (tools.ustr(e)))
-
+ finally:
+ pop_server.quit()
return True
email_server()