diff --git a/src/aiomail/extract.py b/src/aiomail/extract.py index 2fc7abc..29f7352 100644 --- a/src/aiomail/extract.py +++ b/src/aiomail/extract.py @@ -2,6 +2,7 @@ import email.message import logging import re +from email.errors import HeaderParseError from email.header import decode_header, make_header from typing import Callable, Iterable, Iterator, Optional, Pattern, Sequence, Union @@ -44,7 +45,7 @@ def decode_header_value(raw: str) -> str: return raw try: return str(make_header(decode_header(raw))) - except (UnicodeDecodeError, LookupError, ValueError) as exc: + except (UnicodeDecodeError, LookupError, ValueError, HeaderParseError) as exc: log.debug("header decode failed (%s): %s", raw, exc) return raw diff --git a/src/aiomail/retrieve.py b/src/aiomail/retrieve.py index 8e0167d..ce73eca 100644 --- a/src/aiomail/retrieve.py +++ b/src/aiomail/retrieve.py @@ -75,6 +75,7 @@ async def retrieve_otp( forwarded match on From. set `max_age=None` to disable the freshness check. """ folders = list(folders) if folders is not None else list(DEFAULT_FOLDERS) + lengths = list(lengths) sender_ok = as_predicate(sender) subject_ok = as_predicate(subject) query = _server_query(sender, subject, match_field)