diff --git a/imap_filter/imap_filter.py b/imap_filter/imap_filter.py index 5fe20e3..6920d17 100644 --- a/imap_filter/imap_filter.py +++ b/imap_filter/imap_filter.py @@ -301,10 +301,18 @@ class ImapFilter: message = email.message_from_string(part) decoded_field = email.header.decode_header(message.get(mfilter['field'], "")) for raw_field_data in decoded_field: - if isinstance(raw_field_data[0], str): + if isinstance(raw_field_data[0], str): field_data = raw_field_data[0] else: - field_data = raw_field_data[0].decode() + try: + field_data = raw_field_data[0].decode() + except UnicodeDecodeError as error: + self._log.error( + "Error decoding field data as UTF-8. Data: %s. Error: %s", + raw_field_data[0], + error + ) + break if 'regexp' in mfilter: if not isinstance(mfilter['regexp'], list): mfilter['regexp'] = [ mfilter['regexp'] ]