From 78f4664a2586caf2e9b7d3f0ed3de1f189cef107 Mon Sep 17 00:00:00 2001
From: Moriyoshi Koizumi <mozo@mozo.jp>
Date: Mon, 19 Aug 2013 23:17:27 +0900
Subject: [PATCH] Do not try to autodetect charset if the payload is already
 fancy-encoded (i.e. base64 or quoted-printable encoded)

---
 repoze/sendmail/encoding.py | 9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)

diff --git a/repoze/sendmail/encoding.py b/repoze/sendmail/encoding.py
index 03fff54..51bf57d 100644
--- a/repoze/sendmail/encoding.py
+++ b/repoze/sendmail/encoding.py
@@ -71,10 +71,11 @@ def cleanup_message(message,
 
     payload = message.get_payload()
     if payload and isinstance(payload, text_type):
-        charset = message.get_charset()
-        if not charset:
-            charset, encoded = best_charset(payload)
-            message.set_payload(payload, charset=charset)
+        if message['Content-Transfer-Encoding'] not in ('base64', 'quoted-printable'):
+            charset = message.get_charset()
+            if not charset:
+                charset, encoded = best_charset(payload)
+                message.set_payload(payload, charset=charset)
     elif isinstance(payload, list):
         for part in payload:
             cleanup_message(part)