我在解码我正在获取的电子邮件时遇到问题。
该脚本应登录到电子邮件帐户,获取未读消息,然后将它们存储在数据库中。我只想要电子邮件中的实际文本,而不想要 html 的东西。
我找到了很多例子,但似乎都没有。我已经尝试过这个和这个以及我发现的更多。
我现在拥有的代码:
import imaplib, sys, email
import email.parser
myparser = email.parser.Parser()
conn = imaplib.IMAP4_SSL(host='mail.something.com')
retcode, capabilities = conn.login('username', 'XXXXX')
conn.select('Inbox', readonly = 1) # Select inbox as read-only
retcode, messages = conn.search(None, '(UNSEEN)')
if retcode == 'OK':
for message in messages[0].split(' '):
if message == '':
continue
ret, data = conn.fetch(message,'(RFC822)')
msg = email.message_from_string(data[0][1])
# rootMessage = myparser.parse(data[0][1])
# print 'Message %s\n%s\n' % (message, rootMessage)
print msg
print '---------------------------------------------------------------'
conn.close()
正如你所看到的,这里没有解码,因为我尝试过的一切都失败了。
我对 python 很陌生,所以如果有人能引导我走向正确的方向,我将不胜感激。一个 hack 就可以了,它不是一个关键任务脚本,但一个通用的解决方案是最好的。
-G
更新:
没有错误,问题是输出没有正确解码。
示例输入:
This is a test message.
Gísli
输出:
This is a test message.
G=EDsli