diff options
| author | Mantavya Gajjar <mga@tinyerp.com> | 2010-04-22 19:14:47 +0530 |
|---|---|---|
| committer | Mantavya Gajjar <mga@tinyerp.com> | 2010-04-22 19:14:47 +0530 |
| commit | b98126cb41a8da1a0bfba7c4406a35b3d9e8ae5c (patch) | |
| tree | b40540234cfbc4ad0b8f532349a950141d575906 /addons/fetchmail/fetchmail.py | |
| parent | 84a0a39d23f86c499ed71c4f22b33cb9e893fc2b (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.py | 96 |
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): |
