diff --git a/addons/mail/mail_group.py b/addons/mail/mail_group.py index a654a7b194b..168bf64703c 100644 --- a/addons/mail/mail_group.py +++ b/addons/mail/mail_group.py @@ -221,10 +221,12 @@ class mail_group(osv.Model): def message_get_email_values(self, cr, uid, id, notif_mail=None, context=None): res = super(mail_group, self).message_get_email_values(cr, uid, id, notif_mail=notif_mail, context=context) group = self.browse(cr, uid, id, context=context) - try: - headers = eval(res.get('headers', '{}')) - except Exception: - headers = {} + headers = {} + if res.get('headers'): + try: + headers.update(eval(res['headers'])) + except Exception: + pass headers['Precedence'] = 'list' # avoid out-of-office replies from MS Exchange # http://blogs.technet.com/b/exchange/archive/2006/10/06/3395024.aspx @@ -236,5 +238,5 @@ class mail_group(osv.Model): # X-Forge-To: will replace To: after SMTP envelope is determined by ir.mail.server list_to = '"%s" <%s@%s>' % (group.name, group.alias_name, group.alias_domain) headers['X-Forge-To'] = list_to - res['headers'] = '%s' % headers + res['headers'] = repr(headers) return res diff --git a/addons/mail/mail_mail.py b/addons/mail/mail_mail.py index 8d2c37c8baa..602810f7423 100644 --- a/addons/mail/mail_mail.py +++ b/addons/mail/mail_mail.py @@ -67,7 +67,6 @@ class mail_mail(osv.Model): _defaults = { 'state': 'outgoing', - 'headers': '{}', } def default_get(self, cr, uid, fields, context=None): diff --git a/addons/website_mail_group/models/mail_group.py b/addons/website_mail_group/models/mail_group.py index 00bdcdf4258..e45dff09af3 100644 --- a/addons/website_mail_group/models/mail_group.py +++ b/addons/website_mail_group/models/mail_group.py @@ -13,16 +13,18 @@ class MailGroup(osv.Model): res = super(MailGroup, self).message_get_email_values(cr, uid, id, notif_mail=notif_mail, context=context) group = self.browse(cr, uid, id, context=context) base_url = self.pool['ir.config_parameter'].get_param(cr, uid, 'web.base.url') - try: - headers = eval(res.get('headers', '{}')) - except Exception: - headers = {} + headers = {} + if res.get('headers'): + try: + headers = eval(res['headers']) + except Exception: + pass headers.update({ 'List-Archive': '<%s/groups/%s>' % (base_url, slug(group)), 'List-Subscribe': '<%s/groups>' % (base_url), 'List-Unsubscribe': '<%s/groups?unsubscribe>' % (base_url,), }) - res['headers'] = '%s' % headers + res['headers'] = repr(headers) return res