'Returns a file-like object for writing the body of the message.
The content-type is set to the provided ctype, and the optional
parameter, plist, provides additional parameters for the
content-type declaration.  The optional argument prefix determines
where the header is inserted; 0 means append at the end, 1 means
insert at the start. The default is to insert at the start.'

def startbody(self, ctype, plist=[], prefix=1):

    for (name, value) in plist:
        ctype = (ctype + (';\n    %s="%s"' % (name, value)))
    self.addheader('Content-Type', ctype, prefix=prefix)
    self.flushheaders()
    self._fp.write('\n')
    return self._fp
