_dispatch(): Use get_content_maintype() and get_content_subtype() to
get the MIME main and sub types, instead of getting the whole ctype
and splitting it here.   The two more specific methods now correctly
implement RFC 2045, section 5.2.
diff --git a/Lib/email/Generator.py b/Lib/email/Generator.py
index a8e2cfe..8ce3807 100644
--- a/Lib/email/Generator.py
+++ b/Lib/email/Generator.py
@@ -123,9 +123,8 @@
         # self._handle_<maintype>_<subtype>().  If there's no handler for the
         # full MIME type, then dispatch to self._handle_<maintype>().  If
         # that's missing too, then dispatch to self._writeBody().
-        ctype = msg.get_content_type()
-        # We do have a Content-Type: header.
-        main, sub = ctype.split('/')
+        main = msg.get_content_maintype()
+        sub = msg.get_content_subtype()
         specific = UNDERSCORE.join((main, sub)).replace('-', '_')
         meth = getattr(self, '_handle_' + specific, None)
         if meth is None: