[IMP]: mail_gateway: Improvement in mail gateway for message id

bzr revid: rpa@tinyerp.com-20100615050730-6s83d2hit3z8lnp6
This commit is contained in:
rpa (Open ERP)
2010-06-15 10:37:30 +05:30
parent 1600697615
commit 9ca086f69c
3 changed files with 13 additions and 18 deletions
+1 -1
View File
@@ -210,7 +210,7 @@ class crm_lead_forward_to_partner(osv.osv_memory):
message = []
lead_proxy = self.pool.get('crm.lead')
lead = lead_proxy.browse(cr, uid, lead_id, context=context)
if lead.type == 'lead':
if not lead.type or lead.type == 'lead':
field_names = [
'partner_name', 'title', 'function', 'street', 'street2',
'zip', 'city', 'country_id', 'state_id', 'email_from',
+4 -6
View File
@@ -94,8 +94,6 @@ class crm_send_new_email(osv.osv_memory):
if context.get('mail', 'new') == 'new':
if len(case.message_ids):
message_id = case.message_ids[0].message_id
else:
message_id = "<%s-openerp-@%s-%s-%d>" % (time.time(), cr.dbname, model, res_id)
else:
hist = hist_obj.browse(cr, uid, res_id)
message_id = hist.message_id
@@ -116,10 +114,10 @@ class crm_send_new_email(osv.osv_memory):
subject=obj.subject, email_from=email_from, \
message_id=message_id, attach=attach)
x_headers = dict()
#x_headers = {
# 'Reply-To':"%s" % case.section_id.reply_to,
#}
x_headers = {
'model': model,
'resource-id': res_id
}
if message_id:
x_headers['References'] = "%s" % (message_id)
+8 -11
View File
@@ -23,12 +23,8 @@ from osv import osv, fields
import time
import tools
import binascii
import socket
import email
from email.header import decode_header
import netsvc
logger = netsvc.Logger()
import base64
import re
@@ -228,8 +224,6 @@ class mailgate_tool(osv.osv):
"""
message = email.message_from_string(str(msg))
subject = '['+str(res_id)+'] '+ self._decode_header(message['Subject'])
message['Message-Id'] = '<' + str(time.time()) + '-openerp-' + \
model + '-' + str(res_id) + '@'+socket.gethostname() + '>'
msg_mails = []
mails = [self._decode_header(message['From']), self._decode_header(message['To'])]+self._decode_header(message.get('Cc', '')).split(',')
for mail in mails:
@@ -239,15 +233,19 @@ class mailgate_tool(osv.osv):
message['body'] = message.get_payload(decode=True)
if encoding:
message['body'] = message['body'].decode(encoding).encode('utf-8')
x_headers = {
'model': model,
'resource-id': res_id
}
try:
tools.email_send(email_default or tools.config.get('email_from', None), msg_mails, subject, message.get('body'))
tools.email_send(email_default or tools.config.get('email_from', None), msg_mails, subject, message.get('body'), x_headers=x_headers)
except Exception, e:
if email_default:
temp_msg = '['+str(res_id)+'] ' + self._decode_header(message['Subject'])
del message['Subject']
message['Subject'] = '[OpenERP-FetchError] ' + temp_msg
tools.email_send(email_default, email_default, message.get('Subject'), message.get('body'))
tools.email_send(email_default, email_default, message.get('Subject'), message.get('body'), x_headers=x_headers)
return True
def process_email(self, cr, uid, model, message, attach=True, server_id=None, server_type=None, context=None):
@@ -282,7 +280,7 @@ class mailgate_tool(osv.osv):
}
data.update(self.get_partner(cr, uid, msg.get('from'), context=context))
res_id = model_pool.create(cr, uid, data, context=context)
logger.notifyChannel('imap', netsvc.LOG_WARNING, 'method def message_new is not define in model %s. Using default method' % (model_pool._name))
att_ids = []
if attach:
for attachment in msg.get('attachments', []):
@@ -421,7 +419,6 @@ class mailgate_tool(osv.osv):
if hasattr(model_pool, 'message_update'):
model_pool.message_update(cr, uid, [history.res_id], vals, msg, context=context)
else:
logger.notifyChannel('imap', netsvc.LOG_WARNING, 'method def message_update is not define in model %s' % (model_pool._name))
return False
else:
res_id = create_record(msg)