summaryrefslogtreecommitdiff
path: root/addons/fetchmail/fetchmail.py
diff options
context:
space:
mode:
authorMantavya Gajjar <mga@tinyerp.com>2010-04-22 19:14:47 +0530
committerMantavya Gajjar <mga@tinyerp.com>2010-04-22 19:14:47 +0530
commitb98126cb41a8da1a0bfba7c4406a35b3d9e8ae5c (patch)
treeb40540234cfbc4ad0b8f532349a950141d575906 /addons/fetchmail/fetchmail.py
parent84a0a39d23f86c499ed71c4f22b33cb9e893fc2b (diff)
[FIX]: add record reuls for fetchmail servers
[IMP]: add unique index, on email to document configuration, so same server can not be configured for multiple folders bzr revid: mga@tinyerp.com-20100422134447-3hh4wd7ey89pfczr
Diffstat (limited to 'addons/fetchmail/fetchmail.py')
-rw-r--r--addons/fetchmail/fetchmail.py96
1 files changed, 48 insertions, 48 deletions
diff --git a/addons/fetchmail/fetchmail.py b/addons/fetchmail/fetchmail.py
index c59a9be05db..c42ed79d828 100644
--- a/addons/fetchmail/fetchmail.py
+++ b/addons/fetchmail/fetchmail.py
@@ -117,7 +117,7 @@ def html2plaintext(html, body_id=None, encoding='utf-8'):
html += '[%s] %s\n' % (i+1, url)
return html
-class mail_server(osv.osv):
+class email_server(osv.osv):
_name = 'email.server'
_description = "POP/IMAP Server"
@@ -334,56 +334,56 @@ class mail_server(osv.osv):
logger.notifyChannel('imap', netsvc.LOG_INFO, 'fetchmail start checking for new emails on %s' % (server.name))
count = 0
-# try:
- if server.type == 'imap':
- imap_server = None
- if server.is_ssl:
- imap_server = IMAP4_SSL(server.server, int(server.port))
- else:
- imap_server = IMAP4(server.server, int(server.port))
-
- imap_server.login(server.user, server.password)
- imap_server.select()
- result, data = imap_server.search(None, '(UNSEEN)')
- for num in data[0].split():
- result, data = imap_server.fetch(num, '(RFC822)')
- if self._process_email(cr, uid, server, data[0][1], context):
- imap_server.store(num, '+FLAGS', '\\Seen')
- count += 1
- logger.notifyChannel('imap', netsvc.LOG_INFO, 'fetchmail fetch/process %s email(s) from %s' % (count, server.name))
-
- imap_server.close()
- imap_server.logout()
- elif server.type == 'pop':
- pop_server = None
- if server.is_ssl:
- pop_server = POP3_SSL(server.server, int(server.port))
- else:
- pop_server = POP3(server.server, int(server.port))
-
- #TODO: use this to remove only unread messages
- #pop_server.user("recent:"+server.user)
- pop_server.user(server.user)
- pop_server.pass_(server.password)
- pop_server.list()
-
- (numMsgs, totalSize) = pop_server.stat()
- for num in range(1, numMsgs + 1):
- (header, msges, octets) = pop_server.retr(num)
- msg = '\n'.join(msges)
- self._process_email(cr, uid, server, msg, context)
- 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('IMAP', netsvc.LOG_WARNING, '%s' % (e))
+ try:
+ if server.type == 'imap':
+ imap_server = None
+ if server.is_ssl:
+ imap_server = IMAP4_SSL(server.server, int(server.port))
+ else:
+ imap_server = IMAP4(server.server, int(server.port))
+
+ imap_server.login(server.user, server.password)
+ imap_server.select()
+ result, data = imap_server.search(None, '(UNSEEN)')
+ for num in data[0].split():
+ result, data = imap_server.fetch(num, '(RFC822)')
+ if self._process_email(cr, uid, server, data[0][1], context):
+ imap_server.store(num, '+FLAGS', '\\Seen')
+ count += 1
+ logger.notifyChannel('imap', netsvc.LOG_INFO, 'fetchmail fetch/process %s email(s) from %s' % (count, server.name))
+
+ imap_server.close()
+ imap_server.logout()
+ elif server.type == 'pop':
+ pop_server = None
+ if server.is_ssl:
+ pop_server = POP3_SSL(server.server, int(server.port))
+ else:
+ pop_server = POP3(server.server, int(server.port))
+
+ #TODO: use this to remove only unread messages
+ #pop_server.user("recent:"+server.user)
+ pop_server.user(server.user)
+ pop_server.pass_(server.password)
+ pop_server.list()
+
+ (numMsgs, totalSize) = pop_server.stat()
+ for num in range(1, numMsgs + 1):
+ (header, msges, octets) = pop_server.retr(num)
+ msg = '\n'.join(msges)
+ self._process_email(cr, uid, server, msg, context)
+ 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('IMAP', netsvc.LOG_WARNING, '%s' % (e))
return True
-mail_server()
+email_server()
class mail_server_history(osv.osv):