目次
0. Introduction
社内では Outlook を使用していて、大量のメールメッセージの本文の中から何か情報を抽出したい場合、Python を使って簡単に抽出することができます。
- 対象となる読者
- Outlook のメールメッセージから情報を抽出したい方
- 本記事の価値
- .msg 形式の Outlook のメールメッセージの本文を読み込む方法
- 前提
- Python 動作環境
- pywin32 のインストール
pip install pywin32
1. Outlook のメールメッセージの本文を読み込む例
pywin32 は、Python から WindowsAPI へのアクセスを提供してくれます。COM を使って Outlook を操作します。pywin32 を使えば、Excel も同様に処理することができます。Outlook が PC にインストールされていない場合は試していませんが、NoneType が返ってくると予想されます。
import win32com.client
import re
import glob
outlook = win32com.client.Dispatch("Outlook.Application").GetNamespace("MAPI")
path = "(読み込みたいファイル群へのフォルダパス)"
f = open('(本文で抽出したデータを書き出すテキスト).txt', 'w')
for file in glob.glob(path + '*.msg'):
mail = outlook.OpenSharedItem(file)
# ここでは、以下のフォーマットを本文から抜き出しています.
ips = re.findall(r'remip=\d+.\d+.\d+.\d+', mail.body)
for ip in ips:
f.write(ip + '\n')
f.close()