皆様、こんにちは。
ハンズバリュー株式会社のWebデザイナー、神原キサコです。
本日は番外編として、私が日々の業務で直面した、ちょっとした「困った!」と、その解決策についてお話ししたいと思います。
スムーズな連絡の裏側で…
当社では、お客様とのスムーズな連絡を目的に、ビジネスチャットツール「Chatwork」の導入を推進しています。ご契約いただくタイミングでアカウントの作り方をご説明したり、チュートリアルをご提供したり…。気持ちの良いコミュニケーションと、信頼関係の醸成のため、日々活用しています。
そんなある日のこと。お客様とのChatworkで、ピコン♪と通知が。 確認してみると、ファイルが添付されていました。そのファイル名は…
●●●.msg (25.00 KB)
「…ドット エムエスジー…?」
そう、これはWindowsのメールソフトから、メールそのものをドラッグ&ドロップなどで添付したファイル形式だったのです。
開けないファイルのジレンマ
さて、困りました。 Googleで検索すれば、このファイルを開くためのフリーウェアやWebサービスがたくさん見つかります。でも、正直なところ…
- わざわざこのファイルのためだけに、PCにWindowsメールを設定するのは面倒…。
- どんな機密情報が書かれているか分からないのに、得体の知れないWebサービスにアップロードするのは怖い!
- 中国産?どこの誰が作ったか分からないフリーウェアを導入して、ウイルスに感染したらどうしよう…
お客様に「すみません、読めないのでFAXで送ってください!」と言いたくなる気持ちを、ぐっとこらえました。
一度FAXに頼ってしまうと、今後も同じことが繰り返されるかもしれませんし、「メールで転送してください」とお願いすると、せっかく慣れてきたChatworkを使っていただけなくなるかもしれない…。
安全に、スマートに、そして自力で解決する方法はないものか…。 悩んで、悩んで、悩みに悩み尽くした結果、ついに一つの解決策にたどり着きました!
解決策は「Google Colaboratory」!
その解決策とは、Googleが提供している「Google Colaboratory(コラボ)」を活用する方法です。
「Google Colaboratory(通称: Colab)」とは、Googleが提供している、専門的なプログラム(Python)をブラウザ上で簡単に実行できる無料のサービスです。
Google謹製のツールであり、処理はすべてGoogleの安全な環境の中で行われます。
そのため、得体の知れないWebサービスのように、アップロードしたファイルの情報が外部に流出したり、他の目的に使われたりする心配がありません。
「専門的なプログラム」と聞くと、なんだか専門的で難しそうに聞こえるかもしれませんが、大丈夫!これからご紹介する方法ならほぼコピー&ペーストだけで、安全にファイルの中身を確認できます。
一緒に試してみましょう!
Google Colabで「.msg」ファイルを開く3ステップ
ステップ1:ライブラリのインストール
まず、お使いのブラウザ「Google Chrome」でGoogle Colabにアクセスしてください。 すると、コードを入力する画面が表示されます。
そこに、以下の1行をコピー&ペーストしてください。
(カーソルを合わせると右側にコピーボタンが表示されます)
pip install extract-msg
ペーストしたら、コードの左側にある再生ボタン(矢印のアイコン)を1回クリックします。これで、.msgファイルを読むための準備が整います。

ステップ2:ファイルのアップロード
次に、問題の.msg
ファイルをGoogle Colabに読み込ませます。 画面の左側にあるフォルダのアイコンをクリックし、ファイルをアップロードしてください。(ファイルの文字のすぐ下にあります。四角の中に上矢印のマーク。)
【重要】 この時、アップロードするファイル名はsample.msg
に変更しておいてください。
(※「このファイルは記録されません」という警告が出ることがありますが、無視して大丈夫です)

ステップ3:内容の読み込みと表示
最後に、以下のソースコードを全てコピーして、新しいコード入力欄に貼り付けます。
(カーソルを合わせると右側にコピーボタンが表示されます)
Python
import extract_msg
import os
# -------------------------------------------------------------------
# ★ここに読み込みたい.msgファイル名を入力してください
MSG_FILE_NAME = 'sample.msg'
# -------------------------------------------------------------------
# 添付ファイルの保存先フォルダ名
ATTACHMENT_DIR = 'attachments'
def read_msg_file(filename):
""" .msgファイルを読み込み、内容を表示し、添付ファイルを保存する関数 """
print(f"--- ファイル '{filename}' の内容 ---")
try:
# .msgファイルを開く
msg = extract_msg.Message(filename)
except FileNotFoundError:
print(f"エラー: ファイル '{filename}' が見つかりませんでした。")
print("プログラムと同じ階層にファイルを置いてください。")
return
except Exception as e:
print(f"ファイルの読み込み中にエラーが発生しました: {e}")
return
# 基本情報の表示
print(f"件名: {msg.subject}")
print(f"差出人: {msg.sender}")
print(f"受信日時: {msg.date}")
print("\n--- 本文 ---")
print(msg.body)
print("--- 本文ここまで ---\n")
# 添付ファイルの処理
if msg.attachments:
print("--- 添付ファイル ---")
# 添付ファイル保存用のフォルダがなければ作成
if not os.path.exists(ATTACHMENT_DIR):
os.makedirs(ATTACHMENT_DIR)
print(f"'{ATTACHMENT_DIR}' フォルダを作成しました。")
for attachment in msg.attachments:
# 添付ファイルを保存
attachment.save(custom_path=ATTACHMENT_DIR)
print(f"添付ファイル '{attachment.long_filename}' を '{ATTACHMENT_DIR}' フォルダに保存しました。")
else:
print("添付ファイルはありません。")
# --- メインの処理 ---
if __name__ == "__main__":
read_msg_file(MSG_FILE_NAME)

貼り付けたら、ステップ1と同様に再生ボタンをクリックして実行します。
すると、画面の下(スクロールしてください)にメールの「件名」「差出人」「日時」「本文」が表示され、もし添付ファイルがあれば、それも自動で保存してくれます!
まとめ
この方法を使えば、得体の知れないソフトウェアやWebサービスに頼ることなく、安全にお客様から送られてきたWindowsメールのファイルを読むことができます。
同じように悩んでいる方がたくさんいるかもしれないと思い、私自身の備忘録として、今回メモをさせていただきました。 皆様も、もしもの時のために、ぜひご参考にしてくださいね。
最後までお読みいただき、ありがとうございました。
皆様、こんにちは。
ハンズバリュー株式会社のWebデザイナー、神原キサコです。
本日は番外編として、私が日々の業務で直面した、ちょっとした「困った!」と、その解決策についてお話ししたいと思います。
スムーズな連絡の裏側で…
当社では、お客様とのスムーズな連絡を目的に、ビジネスチャットツール「Chatwork」の導入を推進しています。ご契約いただくタイミングでアカウントの作り方をご説明したり、チュートリアルをご提供したり…。気持ちの良いコミュニケーションと、信頼関係の醸成のため、日々活用しています。
そんなある日のこと。お客様とのChatworkで、ピコン♪と通知が。 確認してみると、ファイルが添付されていました。そのファイル名は…
●●●.msg (25.00 KB)
「…ドット エムエスジー…?」
そう、これはWindowsのメールソフトから、メールそのものをドラッグ&ドロップなどで添付したファイル形式だったのです。
開けないファイルのジレンマ
さて、困りました。 Googleで検索すれば、このファイルを開くためのフリーウェアやWebサービスがたくさん見つかります。でも、正直なところ…
- わざわざこのファイルのためだけに、PCにWindowsメールを設定するのは面倒…。
- どんな機密情報が書かれているか分からないのに、得体の知れないWebサービスにアップロードするのは怖い!
- 中国産?どこの誰が作ったか分からないフリーウェアを導入して、ウイルスに感染したらどうしよう…
お客様に「すみません、読めないのでFAXで送ってください!」と言いたくなる気持ちを、ぐっとこらえました。
一度FAXに頼ってしまうと、今後も同じことが繰り返されるかもしれませんし、「メールで転送してください」とお願いすると、せっかく慣れてきたChatworkを使っていただけなくなるかもしれない…。
安全に、スマートに、そして自力で解決する方法はないものか…。 悩んで、悩んで、悩みに悩み尽くした結果、ついに一つの解決策にたどり着きました!
解決策は「Google Colaboratory」!
その解決策とは、Googleが提供している「Google Colaboratory(コラボ)」を活用する方法です。
「Google Colaboratory(通称: Colab)」とは、Googleが提供している、専門的なプログラム(Python)をブラウザ上で簡単に実行できる無料のサービスです。
Google謹製のツールであり、処理はすべてGoogleの安全な環境の中で行われます。
そのため、得体の知れないWebサービスのように、アップロードしたファイルの情報が外部に流出したり、他の目的に使われたりする心配がありません。
「専門的なプログラム」と聞くと、なんだか専門的で難しそうに聞こえるかもしれませんが、大丈夫!これからご紹介する方法ならほぼコピー&ペーストだけで、安全にファイルの中身を確認できます。
一緒に試してみましょう!
Google Colabで「.msg」ファイルを開く3ステップ
ステップ1:ライブラリのインストール
まず、お使いのブラウザ「Google Chrome」でGoogle Colabにアクセスしてください。 すると、コードを入力する画面が表示されます。そこに、以下の1行をコピー&ペーストしてください。
pip install extract-msg
ペーストしたら、コードの左側にある再生ボタン(矢印のアイコン)を1回クリックします。これで、.msgファイルを読むための準備が整います。

ステップ2:ファイルのアップロード
次に、問題の.msg
ファイルをGoogle Colabに読み込ませます。 画面の左側にあるフォルダのアイコンをクリックし、ファイルをアップロードしてください。(ファイルの文字のすぐ下にあります。四角の中に上矢印のマーク。)
【重要】 この時、アップロードするファイル名はsample.msg
に変更しておいてください。
(※「このファイルは記録されません」という警告が出ることがありますが、無視して大丈夫です)

ステップ3:内容の読み込みと表示
最後に、以下のソースコードを全てコピーして、新しいコード入力欄に貼り付けます。
Python
import extract_msg
import os
# -------------------------------------------------------------------
# ★ここに読み込みたい.msgファイル名を入力してください
MSG_FILE_NAME = 'sample.msg'
# -------------------------------------------------------------------
# 添付ファイルの保存先フォルダ名
ATTACHMENT_DIR = 'attachments'
def read_msg_file(filename):
""" .msgファイルを読み込み、内容を表示し、添付ファイルを保存する関数 """
print(f"--- ファイル '{filename}' の内容 ---")
try:
# .msgファイルを開く
msg = extract_msg.Message(filename)
except FileNotFoundError:
print(f"エラー: ファイル '{filename}' が見つかりませんでした。")
print("プログラムと同じ階層にファイルを置いてください。")
return
except Exception as e:
print(f"ファイルの読み込み中にエラーが発生しました: {e}")
return
# 基本情報の表示
print(f"件名: {msg.subject}")
print(f"差出人: {msg.sender}")
print(f"受信日時: {msg.date}")
print("\n--- 本文 ---")
print(msg.body)
print("--- 本文ここまで ---\n")
# 添付ファイルの処理
if msg.attachments:
print("--- 添付ファイル ---")
# 添付ファイル保存用のフォルダがなければ作成
if not os.path.exists(ATTACHMENT_DIR):
os.makedirs(ATTACHMENT_DIR)
print(f"'{ATTACHMENT_DIR}' フォルダを作成しました。")
for attachment in msg.attachments:
# 添付ファイルを保存
attachment.save(custom_path=ATTACHMENT_DIR)
print(f"添付ファイル '{attachment.long_filename}' を '{ATTACHMENT_DIR}' フォルダに保存しました。")
else:
print("添付ファイルはありません。")
# --- メインの処理 ---
if __name__ == "__main__":
read_msg_file(MSG_FILE_NAME)

貼り付けたら、ステップ1と同様に再生ボタンをクリックして実行します。
すると、画面の下(スクロールしてください)にメールの「件名」「差出人」「日時」「本文」が表示され、もし添付ファイルがあれば、それも自動で保存してくれます!
まとめ
この方法を使えば、得体の知れないソフトウェアやWebサービスに頼ることなく、安全にお客様から送られてきたWindowsメールのファイルを読むことができます。
同じように悩んでいる方がたくさんいるかもしれないと思い、私自身の備忘録として、今回メモをさせていただきました。 皆様も、もしもの時のために、ぜひご参考にしてくださいね。
最後までお読みいただき、ありがとうございました。