Port relevant patches for SF 1409455 to the trunk for email 3.0/Python 2.5.
Will port to Python 2.4.
diff --git a/Lib/email/Message.py b/Lib/email/Message.py
index 88fd786..bc76416 100644
--- a/Lib/email/Message.py
+++ b/Lib/email/Message.py
@@ -250,11 +250,14 @@
                             charset=charset.get_output_charset())
         else:
             self.set_param('charset', charset.get_output_charset())
+        if str(charset) <> charset.get_output_charset():
+            self._payload = charset.body_encode(self._payload)
         if not self.has_key('Content-Transfer-Encoding'):
             cte = charset.get_body_encoding()
             try:
                 cte(self)
             except TypeError:
+                self._payload = charset.body_encode(self._payload)
                 self.add_header('Content-Transfer-Encoding', cte)
 
     def get_charset(self):