取得している電子メールのデコードに問題があります。
スクリプトは電子メール アカウントにログオンし、未読メッセージを取得し、後でそれらをデータベースに保存する必要があります。メールの実際のテキストだけが必要ですが、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が初めてなので、誰かが私を正しい方向に導くことができれば、本当に感謝しています。ハッキングは問題ありません。ミッション クリティカルなスクリプトではありませんが、一般的なソリューションが最適です。
-G
アップデート:
エラーはありません。問題は、出力が正しくデコードされていないことです。
入力例:
This is a test message.
Gísli
出力:
This is a test message.
G=EDsli