Como posso obter o conteúdo de texto de uma mensagem de email usando o Python?

Dada uma mensagem RFC822 no Python 2.6, como posso obter ocerto texto / parte de conteúdo simples? Basicamente, o algoritmo que eu quero é este:

message = email.message_from_string(raw_message)
if has_mime_part(message, "text/plain"):
    mime_part = get_mime_part(message, "text/plain")
    text_content = decode_mime_part(mime_part)
elif has_mime_part(message, "text/html"):
    mime_part = get_mime_part(message, "text/html")
    html = decode_mime_part(mime_part)
    text_content = render_html_to_plaintext(html)
else:
    # fallback
    text_content = str(message)
return text_content

Destas coisas, eu tenhoget_mime_part ehas_mime_part para baixo pat, mas não tenho certeza como obter o texto decodificado da parte MIME. Eu posso pegar ocodificado texto usandoget_payload(), mas se eu tentar usar odecode parâmetro doget_payload() método (vero doc) Eu recebo um erro quando eu o chamo na parte text / plain:

File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/
email/message.py", line 189, in get_payload
    raise TypeError('Expected list, got %s' % type(self._payload))
TypeError: Expected list, got <type 'str'>

Além disso, não sei como obter HTML e processá-lo para o texto da melhor forma possível.

questionAnswers(2)

yourAnswerToTheQuestion