summaryrefslogtreecommitdiff
path: root/addons/mail/models/mail_thread.py
diff options
context:
space:
mode:
Diffstat (limited to 'addons/mail/models/mail_thread.py')
-rw-r--r--addons/mail/models/mail_thread.py17
1 files changed, 9 insertions, 8 deletions
diff --git a/addons/mail/models/mail_thread.py b/addons/mail/models/mail_thread.py
index fd736269968..53ed1da740c 100644
--- a/addons/mail/models/mail_thread.py
+++ b/addons/mail/models/mail_thread.py
@@ -829,11 +829,13 @@ class MailThread(models.AbstractModel):
def _routing_warn(self, error_message, warn_suffix, message_id, route, raise_exception):
""" Tools method used in message_route_verify: whether to log a warning or raise an error """
- full_message = _('Routing mail with Message-Id %s: route %s: %s') % (message_id, route, error_message)
+ short_message = _("Mailbox unavailable - %s") % error_message
+ full_message = ('Routing mail with Message-Id %s: route %s: %s' %
+ (message_id, route, error_message))
+ _logger.info(full_message + (warn_suffix and '; %s' % warn_suffix or ''))
if raise_exception:
- raise ValueError(full_message)
- else:
- _logger.info(full_message + warn_suffix and '; %s' % warn_suffix or '')
+ # sender should not see private diagnostics info, just the error
+ raise ValueError(short_message)
def _routing_create_bounce_email(self, email_from, body_html, message):
bounce_to = tools.decode_message_header(message, 'Return-Path') or email_from
@@ -1387,6 +1389,7 @@ class MailThread(models.AbstractModel):
node.getparent().remove(node)
if postprocessed:
body = etree.tostring(root, pretty_print=False, encoding='UTF-8')
+ body = pycompat.to_native(body)
return body, attachments
def _message_extract_payload(self, message, save_original=False):
@@ -1495,10 +1498,8 @@ class MailThread(models.AbstractModel):
'message_type': 'email',
}
if not isinstance(message, Message):
- # message_from_string works on a native str, so on py2 we need to
- # encode incoming unicode strings
- if pycompat.PY2 and not isinstance(message, str):
- message = message.encode('utf-8')
+ # message_from_string works on a native str
+ message = pycompat.to_native(message)
message = email.message_from_string(message)
message_id = message['message-id']