From 0e34dbad5700339748b4d8b292fe60a58d64eda9 Mon Sep 17 00:00:00 2001 From: Fedele Mantuano Date: Fri, 13 Oct 2017 00:29:43 +0200 Subject: [PATCH] Fixed manage binary attachments when in "quoted-printable" --- mailparser/mailparser.py | 14 +++----------- mailparser/version.py | 2 +- 2 files changed, 4 insertions(+), 12 deletions(-) diff --git a/mailparser/mailparser.py b/mailparser/mailparser.py index b582738..038492e 100644 --- a/mailparser/mailparser.py +++ b/mailparser/mailparser.py @@ -328,19 +328,11 @@ def parse(self): transfer_encoding = ported_string( p.get('content-transfer-encoding', '')).lower() - if transfer_encoding in ("base64"): + if transfer_encoding == "base64" or \ + (transfer_encoding == "quoted-printable" and + "application" in mail_content_type): payload = p.get_payload(decode=False) binary = True - elif transfer_encoding in ("quoted-printable"): - d = p.get_payload(decode=True) - e = p.get_payload(decode=False) - - # In this case maybe is a binary with malformed base64 - if d == e: - payload = e - binary = True - else: - payload = ported_string(d, encoding=charset) else: payload = ported_string( p.get_payload(decode=True), encoding=charset) diff --git a/mailparser/version.py b/mailparser/version.py index 92a2893..af70058 100644 --- a/mailparser/version.py +++ b/mailparser/version.py @@ -17,7 +17,7 @@ limitations under the License. """ -__version__ = "2.0.0" +__version__ = "2.0.1" if __name__ == "__main__": print(__version__)