[PATCH 2/2] QP-encode email body

Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
From: Karl
Date: Sunday, October 22, 2006 - 5:49 am

From: Karl Hasselstr=C3=B6m <kha@treskal.com>

Some mail servers dislike the 8bit transfer encoding, so use
quoted-printable instead.

Signed-off-by: Karl Hasselstr=C3=B6m <kha@treskal.com>
---

 stgit/commands/mail.py |   16 +++++++++-------
 1 files changed, 9 insertions(+), 7 deletions(-)

diff --git a/stgit/commands/mail.py b/stgit/commands/mail.py
index b661308..885d5e9 100644
--- a/stgit/commands/mail.py
+++ b/stgit/commands/mail.py
@@ -15,7 +15,7 @@ along with this program; if not, write t
 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
 """
=20
-import sys, os, re, time, datetime, smtplib, email.Header, email.Utils
+import sys, os, re, time, datetime, quopri, smtplib, email.Header, email.U=
tils
 from optparse import OptionParser, make_option
=20
 from stgit.commands.common import *
@@ -253,7 +253,7 @@ def __build_extra_headers():
     """Build extra headers like content-type etc.
     """
     headers  =3D 'Content-Type: text/plain; charset=3Dutf-8; format=3Dfixe=
d\n'
-    headers +=3D 'Content-Transfer-Encoding: 8bit\n'
+    headers +=3D 'Content-Transfer-Encoding: quoted-printable\n'
     headers +=3D 'User-Agent: StGIT/%s\n' % version.version
=20
     return headers
@@ -425,9 +425,9 @@ def encode_header(s, enc):
     else:
         return s
=20
-def encode_headers(msg, enc):
-    """rfc2047-encode the headers of msg, assuming it is encoded in
-    enc."""
+def encode_message(msg, enc):
+    """rfc2047-encode the headers of msg, and quoted-printable-encode
+    the body. msg is assumed to be encoded in enc."""
     in_header =3D True
     lines =3D []
     for line in msg.splitlines(True):
@@ -436,6 +436,8 @@ def encode_headers(msg, enc):
                 line =3D encode_header(line, enc)
             else:
                 in_header =3D False
+        else:
+            line =3D quopri.encodestring(line)
         lines.append(line)
     return ''.join(lines)
=20
@@ -497,7 +499,7 @@ def func(parser, options, args):
                 raise CmdException, 'No cover message template file found'
=20
         msg_id =3D email.Utils.make_msgid('stgit')
-        msg =3D encode_headers(__build_cover(tmpl, total_nr, msg_id, optio=
ns),
+        msg =3D encode_message(__build_cover(tmpl, total_nr, msg_id, optio=
ns),
                              'UTF-8')
         from_addr, to_addr_list =3D __parse_addresses(msg)
=20
@@ -524,7 +526,7 @@ def func(parser, options, args):
=20
     for (p, patch_nr) in zip(patches, range(1, len(patches) + 1)):
         msg_id =3D email.Utils.make_msgid('stgit')
-        msg =3D encode_headers(__build_message(tmpl, p, patch_nr, total_nr,
+        msg =3D encode_message(__build_message(tmpl, p, patch_nr, total_nr,
                                              msg_id, ref_id, options), 'UT=
F-8')
         from_addr, to_addr_list =3D __parse_addresses(msg)
=20
-
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]

Messages in current thread:
[PATCH] RFC2047-encode email headers, Karl , (Sun Oct 22, 5:02 am)
Re: [PATCH] RFC2047-encode email headers, Karl , (Sun Oct 22, 5:12 am)
[PATCH 1/2] RFC2047-encode email headers, Karl , (Sun Oct 22, 5:49 am)
[PATCH 2/2] QP-encode email body, Karl , (Sun Oct 22, 5:49 am)