Pythonでメールの件名や本文を取り込む
基本的に
unicode(text, 'iso-2022-jp').encode("utf-8")
みたいに、取り出したものを文字コード指定でユニコード化して、utf-8にencodeをかけるようだ。
なので、
subject = decode_header(m["Subject"]) for i, v in enumerate(subject): title = unicode(v[i], 'iso-2022-jp').encode("utf-8")
とか、
body = unicode(part.get_payload(decode=True), enc).encode('utf-8')
とかで、データベースに入れても文字化けしなくなる。