2

応答の下に示されているコードを実行すると、次の応答が返されます。この応答を解析して、送信者 (John Smith) と件名 (test) を取得するにはどうすればよいですか?

[('13010 (BODY[HEADER.FIELDS (SUBJECT FROM)] {57}', 'From: John Smith <jsmith@gmail.com>\r\nSubject: test\r\n\r\n'), ')']

-

conn.fetch(message, '(BODY[HEADER.FIELDS (SUBJECT FROM)])')
4

2 に答える 2

7

おそらく、ここの質問/回答が役に立ちます。次のようなことを試してください:

from email.parser import HeaderParser
data = conn.fetch(message, '(BODY[HEADER.FIELDS (SUBJECT FROM)])')
header_data = data[1][0][1]
parser = HeaderParser()
msg = parser.parsestr(header_data)

そしてmsg、辞書でなければなりません。

于 2011-06-02T02:08:17.640 に答える
4

これを試して、すべてのメールのヘッダー情報を取得できます。

import imaplib
import email

obj = imaplib.IMAP4_SSL('imap.gmail.com', 993)
obj.login('username', 'password')
obj.select('folder_name')
resp, data = obj.uid('FETCH', ','.join(map(str,uidl_list)) , '(BODY.PEEK[HEADER.FIELDS (From Subject)] RFC822.SIZE)')

注: ここで 'uidl_list' は、件名が必要なメールの uid のリストです。

于 2011-06-02T09:16:35.603 に答える