From 509af82919256d2a519517ca5c1df3d1997ad61b Mon Sep 17 00:00:00 2001 From: Lars Wirzenius Date: Wed, 22 Mar 2017 22:37:35 +0200 Subject: Handle errors decoding headers --- distixlib/plugins/import_mail_plugin.py | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/distixlib/plugins/import_mail_plugin.py b/distixlib/plugins/import_mail_plugin.py index 080e663..6ed28e8 100644 --- a/distixlib/plugins/import_mail_plugin.py +++ b/distixlib/plugins/import_mail_plugin.py @@ -183,10 +183,18 @@ class ImportMailPlugin(cliapp.Plugin): def _get_header(self, msg, name): decoded = email.header.decode_header(msg[name]) combined = u' '.join( - value.decode(encoding or 'us-ascii') + self._safe_decode(value, encoding) for value, encoding in decoded) return combined + def _safe_decode(self, text, encoding): + try: + return text.decode(encoding or 'us-ascii') + except LookupError: + return repr(text) + except UnicodeDecodeError: + return repr(text) + def _create_ticket(self, ticket_id, title): ticket = distixlib.Ticket() ticket.set_ticket_id(ticket_id) -- cgit v1.2.1