メールを読んで送信することになっているiOSアプリに取り組んでいます。受信トレイフォルダーにアクセスするには、「INBOX」を使用しました。Yahoo と AOL ではうまくいきましたが、Gmail ではうまくいきませんでした。「[Gmail]」、「[Gmail]/All Mails」、「Gmail/[All Mails]」を試すように言われました。これらすべてを試しましたが、どれも機能していません。そして重要なことに、「[Gmail]/Spam」または「[Gmail]/Trash」と書いても問題なく動作します。つまり、受信トレイ以外のすべてのフォルダーのメールにアクセスできるということです。Gmail の受信トレイ フォルダにアクセスするにはどうすればよいですか?
2048 次
2 に答える
1
"Inbox"
python3 と imaplib を使用して GMail にアクセスするために使用できます。すべての有効なフォルダー名のリストを取得して確認する方法は次のとおりです。
import imaplib
mail = imaplib.IMAP4_SSL('imap.gmail.com')
mail.login('username', 'password')
print(mail.list())
私にとって、返される値のいくつかは次のとおりです。"INBOX"
(受信トレイ)、"PERSONAL"
(ラベル)、"[Gmail]/Drafts"
(GMail の下書き)、"[Gmail]/Sent Mail"
(GMail 送信済みアイテム)。
ログイン後、「受信トレイ」フォルダを選択し、クエリを使用してフォルダの内容を検索するだけです。たとえば、これは"Inbox"
フォルダー内の電子メールの件名のリストを返します。
# mail is the imap object from the previous listing
mail.select('"INBOX"')
result, data = mail.search(None, "ALL")
for e_id in data[0].split()[-10:]:
_, response = mail.fetch(e_id, '(body[header.fields (subject)])')
print(response[0][1][9:])
"[Gmail]/Drafts"
失敗しているのに成功している可能性がある理由"[Gmail]/Sent Mail"
は、二重引用符で囲まれた空白を含むフォルダー名を引用していないためです。python3でそれを行う方法は次のとおりです。
# mail is the imap object from the previous listing
mail.select('"[Gmail]/Sent Mail"') # notice the double quotes as a part of the folder name
result, data = mail.search(None, "ALL")
于 2012-09-17T05:39:32.900 に答える
1
問題を解決しました
"[Gmail]/All Mail"
于 2012-09-18T04:29:24.790 に答える