Gmailのメール一覧を取得

30分プログラム、その348。imaplibを試してみる。
前にid:dmp939が、『定期的に受信ボックスをチェックして、特定のメールをトリガーとして何かを起動するプログラムを作ろうぜ』っていう「それなんてprocmail」って感じのことを言っていたのを思いだしたので。

とりあえず、サーバはGmail固定。

使い方

$ python imap.py
user name: example@gmail.com
Password:
Subject: =?ISO-2022-JP?B?GyRCJTUhPCVTJTlNeE1RTkE2YiROJDRAQTVhJEsbKEI=?=
 =?ISO-2022-JP?B?GyRCJEQkJCRGJE4kKkNOJGkkOyFKJDRAQTVhPXEhSxsoQg==?=
Subject: Yay! Your Photojojo Order Shipped! (#74Y97581ED4384354)
Subject: Yay! Your Photojojo Order Shipped! (#74Y97581ED4384354)
Subject: Yay! Your Photojojo Order Shipped! (#74Y97581ED4384354)
Subject: =?ISO-2022-JP?B?W2NvbmN1cl9hbGw6MA==?=
 =?ISO-2022-JP?B?MDEwOF0gORskQjduJCskaSROOCY1ZjJxGyhC?=
Subject: USPS Shipment Info for CM00 6701 633U S
Subject: Cron <mzp@itsuha> $HOME/workspace/pragger/podcast.sh

ソースコード

import getpass
from imaplib import *

imap = IMAP4_SSL('imap.gmail.com')
user = raw_input('user name: ')
imap.login(user,getpass.getpass())
imap.select()

_,[data] = imap.search(None,'ALL')

for i in data.split(' '):
  _,sub = imap.fetch(i,'(BODY[HEADER.FIELDS (SUBJECT)])')
  print sub[0][1].strip()
imap.logout()