Created
December 20, 2013 13:21
-
-
Save utgwkk/8054659 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/env python | |
# -*- coding: utf-8 -*- | |
# Email を扱うために必要なモジュール | |
import imaplib, email | |
# http://www.python-excel.org/ でダウンロード・インストールしておくこと | |
import xlwt | |
# 正規表現を扱うためのモジュール | |
import re | |
# 保存するファイル名 | |
savename = 'list.xlsx' | |
# GMail のユーザー名 | |
user = '[email protected]' | |
# パスワード | |
password = 'PASSWORD' | |
host = 'imap.gmail.com' | |
port = 993 | |
# IMAP 接続 | |
im = imaplib.IMAP4_SSL(host,port) | |
# メールオブジェクトを格納するリスト | |
mlist = [] | |
# ログイン | |
im.login(user,password) | |
# 受信ボックスを選択 | |
im.select('INBOX') | |
# スター付きメールを抽出 | |
typ, data = im.search(None,'FLAGGED') | |
# メールをひとまわり | |
for num in data[0].split(): | |
typ, data = im.fetch(num, '(RFC822)') | |
# mlist にメールオブジェクトを追加 | |
mlist.append(email.message_from_string(data[0][1])) | |
# ログアウト | |
im.close() | |
im.logout() | |
# 件名を格納するリスト | |
subject = [] | |
# 正規表現のパターン | |
# ここでは、【】の中に何らかの文字列が含まれるものを抽出する | |
pat = re.compile(r'【(.+)】') | |
# mlist をひとまわり | |
for m in mlist: | |
# 文字コードを取得 | |
encoding = email.Header.decode_header(m.get('Subject'))[0][1] | |
# 件名をsubjectリストに追加 | |
# デコードしておく(encodingがない場合はutf-8) | |
subject.append(email.Header.decode_header(m.get('Subject'))[0][0].decode(encoding or 'utf-8').encode('utf-8')) | |
# ワークブックを作成 | |
book = xlwt.Workbook(encoding='utf-8') | |
# シートを追加 | |
sheet = book.add_sheet('Sheet1') | |
# カウント | |
i = 0 | |
# subject をひとまわり | |
for s in subject: | |
# パターンマッチ | |
m = pat.match(s) | |
# マッチしていたら | |
if m: | |
# セル iA に件名を書く | |
sheet.write(i,0,m.group(1)) | |
# カウントアップ | |
i += 1 | |
# 保存 | |
book.save(savename) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment