poplibのみを使用してgmailの受信トレイからメールをダウンロードする必要があります。残念ながら、受信トレイのみを選択するオプションが表示されず、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 検索エンジンにローカルでプッシュする方法について説明しています)