for frag, enc in decodefrag:
if enc:
try:
frag = unicode(frag, enc).encode(OUTPUT_ENCODING)
except:
c = japanesenkf.iso2022_jp_nkf()
frag,len = c.decode(frag)
fragments.append(frag)
return ''.join(fragments)
#メール本文の文字列をデコード
def imap4_body_decode(part):
body = ''
charset = str(part.get_content_charset())
if charset == 'utf-8':
try:
body = base64.b64decode(part.get_payload())
except:
body = part.get_payload(decode=True)
elif charset == 'shift_jis':
try:
body = unicode(part.get_payload(decode=True),'shift_jis').encode('utf-8')
body = string.replace(body, '\r','')
except:
if part.get_payload(decode=True) != None:
c = japanesenkf.shift_jis_nkf()
body,len = c.decode(part.get_payload(decode=True))
else:
try:
body = unicode(part.get_payload(decode=True), INPUT_ENCODING).encode(OUTPUT_ENCODING)
except:
#body = part.get_payload(decode=True)
if part.get_payload(decode=True) != None:
c = japanesenkf.iso2022_jp_nkf()
body,len = c.decode(part.get_payload(decode=True))
typ, data = M.search(None, 'ALL')
for num in data[0].split():
typ, data = M.fetch(num, '(RFC822)')
mail = imap4mail(data[0][1])
print mail._title
print mail._body
M.close()
if __name__ == "__main__":
#メールサーバ指定
M = imaplib.IMAP4('192.168.1.251')
#ログイン
M.login('mantis', 'mantis')