Last active
December 31, 2015 22:18
-
-
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
This file contains 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 | |
# 保存するファイル名 | |
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