summaryrefslogtreecommitdiff
path: root/addons/fetchmail
diff options
context:
space:
mode:
authorHarry (Open ERP) <hmo@tinyerp.com>2010-04-23 18:07:17 +0530
committerHarry (Open ERP) <hmo@tinyerp.com>2010-04-23 18:07:17 +0530
commitd8426d2276e8d9a4db31ec4347cd6c765ce70c3d (patch)
tree6286ac270fae5743128a4fad53bedadaecc737c5 /addons/fetchmail
parent1b4e2276037ca203ec3c88270ac2b71ed59f7287 (diff)
parentf3aa34689688a5ff6eb2f5af7d3a8d4c60428fc0 (diff)
[MERGE] merged from lp:~openerp/openobject-addons/trunk/
bzr revid: hmo@tinyerp.com-20100423123717-4aqty73sc1a6vex5
Diffstat (limited to 'addons/fetchmail')
-rw-r--r--addons/fetchmail/fetchmail.py41
-rw-r--r--addons/fetchmail/fetchmail_data.xml16
2 files changed, 35 insertions, 22 deletions
diff --git a/addons/fetchmail/fetchmail.py b/addons/fetchmail/fetchmail.py
index 565c4434607..feb88b57136 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"
@@ -144,13 +144,14 @@ class mail_server(osv.osv):
'action_id':fields.many2one('ir.actions.server', 'Reply Email', required=False, domain="[('state','=','email')]"),
'object_id': fields.many2one('ir.model',"Model", required=True),
'priority': fields.integer('Server Priority', readonly=True, states={'draft':[('readonly',False)]}, help="Priority between 0 to 10, select define the order of Processing"),
+ 'user_id':fields.many2one('res.users', 'User', required=False),
}
_defaults = {
-# 'type': lambda *a: "imap",
'state': lambda *a: "draft",
'active': lambda *a: True,
'priority': lambda *a: 5,
'date': lambda *a: time.strftime('%Y-%m-%d'),
+ 'user_id': lambda self, cr, uid, ctx: uid,
}
def check_duplicate(self, cr, uid, ids):
@@ -176,6 +177,9 @@ class mail_server(osv.osv):
return {'value':{'port':port}}
def _process_email(self, cr, uid, server, message, context={}):
+ context.update({
+ 'server_id':server.id
+ })
history_pool = self.pool.get('mail.server.history')
msg_txt = email.message_from_string(message)
message_id = msg_txt.get('Message-ID', False)
@@ -289,16 +293,16 @@ class mail_server(osv.osv):
logger.notifyChannel('imap', netsvc.LOG_WARNING, 'method def message_new is not define in model %s' % (model_pool._name))
return False
- for attactment in attachents or []:
- data_attach = {
- 'name': attactment,
- 'datas':binascii.b2a_base64(str(attachents.get(attactment))),
- 'datas_fname': attactment,
- 'description': 'Mail attachment',
- 'res_model': server.object_id.model,
- 'res_id': res_id,
- }
- self.pool.get('ir.attachment').create(cr, uid, data_attach)
+# for attactment in attachents or []:
+# data_attach = {
+# 'name': attactment,
+# 'datas':binascii.b2a_base64(str(attachents.get(attactment))),
+# 'datas_fname': attactment,
+# 'description': 'Mail attachment',
+# 'res_model': server.object_id.model,
+# 'res_id': res_id,
+# }
+# self.pool.get('ir.attachment').create(cr, uid, data_attach)
if server.action_id:
action_pool = self.pool.get('ir.actions.server')
@@ -322,13 +326,10 @@ class mail_server(osv.osv):
return self.fetch_mail(cr, uid, ids, context)
def fetch_mail(self, cr, uid, ids, context={}):
- fp = os.popen('ping www.google.com -c 1 -w 5',"r")
- if not fp.read():
- logger.notifyChannel('imap', netsvc.LOG_WARNING, 'No address associated with hostname !')
-
for server in self.browse(cr, uid, ids, context):
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
@@ -363,7 +364,6 @@ class mail_server(osv.osv):
pop_server.list()
(numMsgs, totalSize) = pop_server.stat()
- count = 0
for num in range(1, numMsgs + 1):
(header, msges, octets) = pop_server.retr(num)
msg = '\n'.join(msges)
@@ -379,7 +379,7 @@ class mail_server(osv.osv):
return True
-mail_server()
+email_server()
class mail_server_history(osv.osv):
@@ -404,10 +404,7 @@ class mail_server_history(osv.osv):
mail_server_history()
class fetchmail_tool(osv.osv):
- """
- OpenERP Model : fetchmail_tool
- """
-
+
_name = 'email.server.tools'
_description = "Email Tools"
_auto = False
diff --git a/addons/fetchmail/fetchmail_data.xml b/addons/fetchmail/fetchmail_data.xml
index ef40a76489f..d9f35874356 100644
--- a/addons/fetchmail/fetchmail_data.xml
+++ b/addons/fetchmail/fetchmail_data.xml
@@ -12,4 +12,20 @@
<field eval="'()'" name="args"/>
</record>
</data>
+
+ <data>
+ <record id="fetchmail_user_server" model="ir.rule.group">
+ <field name="name">User wise Server</field>
+ <field ref="model_email_server" name="model_id" model="ir.model"/>
+ <field eval="True" name="global"/>
+ </record>
+
+ <record id="fetchmail_user_server_rule" model="ir.rule">
+ <field model="ir.model.fields" name="field_id" search="[('model','=','email.server'),('name','=','user_id')]"/>
+ <field name="operator">=</field>
+ <field name="operand">user.id</field>
+ <field name="rule_group" ref="fetchmail_user_server"/>
+ </record>
+
+ </data>
</openerp>