[IMP] mail_gateway: improve email headers detection for mail user agents that do not set the References but just the In-Reply-To headers

bzr revid: odo@openerp.com-20100805091909-cv91l3380kkpr4a7
This commit is contained in:
Olivier Dony 2010-08-05 11:19:09 +02:00
parent d7744b204f
commit c4f3dc085d
1 changed files with 16 additions and 13 deletions

View File

@ -234,16 +234,16 @@ class mailgate_tool(osv.osv_memory):
msg_pool = self.pool.get('mailgate.message')
for res_id in res_ids:
msg_data = {
'name': msg.get('subject', 'No subject'),
'date': msg.get('date') ,
'description': msg.get('body', msg.get('from')),
'name': msg.get('subject', 'No subject'),
'date': msg.get('date'),
'description': msg.get('body', msg.get('from')),
'history': True,
'res_model': model,
'email_cc': msg.get('cc'),
'email_from': msg.get('from'),
'res_model': model,
'email_cc': msg.get('cc'),
'email_from': msg.get('from'),
'email_to': msg.get('to'),
'message_id': msg.get('message-id'),
'references': msg.get('references'),
'message_id': msg.get('message-id'),
'references': msg.get('references') or msg.get('in-reply-to'),
'res_id': res_id,
'user_id': uid,
'attachment_ids': [(6, 0, attach)]
@ -380,6 +380,9 @@ class mailgate_tool(osv.osv_memory):
if 'References' in fields:
msg['references'] = msg_txt.get('References')
if 'In-Reply-To' in fields:
msg['in-reply-to'] = msg_txt.get('In-Reply-To')
if 'X-Priority' in fields:
msg['priority'] = msg_txt.get('X-Priority', '3 (Normal)').split(' ')[0]
@ -425,12 +428,12 @@ class mailgate_tool(osv.osv_memory):
res_ids = []
attachment_ids = []
new_res_id = False
if msg.get('references'):
references = msg.get('references')
if msg.get('references') or msg.get('in-reply-to'):
references = msg.get('references') or msg.get('in-reply-to')
if '\r\n' in references:
references = msg.get('references').split('\r\n')
references = references.split('\r\n')
else:
references = msg.get('references').split(' ')
references = references.split(' ')
for ref in references:
ref = ref.strip()
res_id = tools.misc.reference_re.search(ref)
@ -464,7 +467,7 @@ class mailgate_tool(osv.osv_memory):
email_from = msg.get('from'),
email_cc = msg.get('cc'),
message_id = msg.get('message-id'),
references = msg.get('references', False),
references = msg.get('references', False) or msg.get('in-reply-to', False),
attach = attachments.items(),
context = context)
else: