poplibを介して受信トレイからのみメールを選択する
質問
Poplibのみを使用してGmailの受信トレイからメールをダウンロードする必要があります。残念ながら、Inboxのみを選択するオプションは表示されず、poplibから送信済みアイテムからのメールも送信されます。
受信トレイからのみメールを選択するにはどうすればよいですか
Gmail固有のライブラリを使用したくない。
解決
POP3には「フォルダ」という概念はありません。 Gmailが「送信済み」メールと「受信済み」メールの両方を表示している場合、そのメールをすべて受信する以外に選択肢はありません。
おそらく、POP3の代わりにIMAP4を使用した方が良いでしょう。 Pythonには、GmailのIMAP4サーバーで動作するライブラリがあります。
他のヒント
GMailアカウントへのPOP3 / IMAPアクセスを有効にしていると思います。
これはサンプルコードです:
import imaplib
conn= imaplib.IMAP4_SSL('imap.googlemail.com')
conn.login('yourusername', 'yourpassword')
code, dummy= conn.select('INBOX')
if code != 'OK':
raise RuntimeError, "Failed to select inbox"
code, data= self.conn.search(None, ALL)
if code == 'OK':
msgid_list= data[0].split()
else:
raise RuntimeError, "Failed to get message IDs"
for msgid in msgid_list:
code, data= conn.fetch(msgid, '(RFC822)')
# you can also use '(RFC822.HEADER)' only for headers
if code == 'OK':
pass # your code here
else:
raise RuntimeError, "could not retrieve msgid %r" % msgid
conn.close()
conn.logout()
またはこのようなもの。
このJavaコードは、特定の「フォルダ」を選択できることを示唆しています。 POP3を使用している場合でもダウンロードできます。繰り返しますが、これはPythonではなくJavaを使用しているため、YMMVです。
Javaを使用してGMailからメッセージをダウンロードする方法(ブログ投稿でローカルにLucene検索エンジンにコンテンツをプッシュする方法について説明しています)
所属していません StackOverflow