別のアカウントから、件名のメールを自分宛に送信しましたTest de réception en local
。現在 IMAP を使用して、件名で検索してそのメールを見つけたいと考えています。
ALL
出力の中から電子メールを検索して見つけると、次のように表示されます。
Subject: =?ISO-8859-1?Q?Test_de_r=E9ception_en_local?=
だから今、imapで検索して、試してみます:
M = imaplib.IMAP4_SSL('imap.gmail.com', 993)
M.login('user@gmail.com', 'password')
M.select('[Gmail]/All Mail')
subject = Header(email_model.subject, 'iso-8859-1').encode() #email_model.subject is in unicode, utf-8 encoded
typ, data = M.search('iso-8859-1', '(SUBJECT "%s")' % subject)
for num in data[0].split():
typ, data = M.fetch(num, '(RFC822)')
print 'Message %s\n%s\n' % (num, data[0][1])
M.close()
M.logout()
print 'Fin'
を印刷するsubject
と、以前のより広範な検索で IMAP サーバーから取得した結果とまったく同じ結果が表示されることがわかります。しかし、このより具体的な検索を行うと、一致しないようです。
検索のために、私が考えることができるすべてを試しました:
typ, data = M.search('iso-8859-1', '(HEADER subject "%s")' % subject)
typ, data = M.search('iso-8859-1', 'ALL (SUBJECT "%s")' % subject)
そして、現時点では思い出すことができない他のものは、すべて運が悪かった.
件名に ASCII のみが使用されているメールを検索 (および一致) できますが、エンコードが適用されている件名では機能しません。そう...
IMAP で、エンコーディングが適用された件名を使用して電子メールを検索する適切な方法は何ですか?
ありがとう