Skip to content

Instantly share code, notes, and snippets.

@utgwkk
Last active December 31, 2015 22:18
Show Gist options
  • Save utgwkk/8052264 to your computer and use it in GitHub Desktop.
Save utgwkk/8052264 to your computer and use it in GitHub Desktop.
GMail の受信ボックスのスター付きメールの件名を抽出して、Excel Book に保存する http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q11118070576
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# Email を扱うために必要なモジュール
import imaplib, email
# http://www.python-excel.org/ でダウンロード・インストールしておくこと
import xlwt
# 保存するファイル名
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 = []
# 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'))
# ワークブックを作成
book = xlwt.Workbook(encoding='utf-8')
# シートを追加
sheet = book.add_sheet('Sheet1')
# subject をひとまわり
for i,s in enumerate(subject):
# セル iA に件名を書く
sheet.write(i,0,s.encode('utf-8'))
# 保存
book.save(savename)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment