1

メールを読んで送信することになっているiOSアプリに取り組んでいます。受信トレイフォルダーにアクセスするには、「INBOX」を使用しました。Yahoo と AOL ではうまくいきましたが、Gmail ではうまくいきませんでした。「[Gmail]」、「[Gmail]/All Mails」、「Gmail/[All Mails]」を試すように言われました。これらすべてを試しましたが、どれも機能していません。そして重要なことに、「[Gmail]/Spam」または「[Gmail]/Trash」と書いても問題なく動作します。つまり、受信トレイ以外のすべてのフォルダーのメールにアクセスできるということです。Gmail の受信トレイ フォルダにアクセスするにはどうすればよいですか?

4

2 に答える 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 に答える