[IMP]: mail_gateway: Improvement in mail gateway for message id
bzr revid: rpa@tinyerp.com-20100615050730-6s83d2hit3z8lnp6
This commit is contained in:
@@ -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',
|
||||
|
||||
@@ -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)
|
||||
|
||||
|
||||
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user