1日5分の時短革命!Pythonを使ったOutlookメール自動送信テクニック

PRについて
※このサイトはアフィリエイト広告(Amazonアソシエイト含む)を掲載しています。
スポンサーリンク
※このサイトはアフィリエイト広告(Amazonアソシエイト含む)を掲載しています。
1日5分の時短革命!Pythonを使ったOutlookメール自動送信テクニック Tips集
1日5分の時短革命!Pythonを使ったOutlookメール自動送信テクニック

「毎日の定型メール、面倒だな…」
「システムのアラートを自動でメール通知したい!」

そんな風に思ったことはありませんか?

ごまこ
ごまこ

メール業務ってどんなお仕事でもありますよね!
外部への連絡から日報、社内の提携報告まで面倒なことが多いです!

ごまお
ごまお

わかります~!!
それではPythonを用いてメール業務を自動化してみるのはどうでしょう?

実は、プログラミング言語Pythonを使えば、あなたが普段使っているMicrosoft Outlookのメール送信を驚くほど簡単に自動化できるんです。

この記事では、たった数行のコードでOutlookメールを自動送信する方法から、ファイル添付や受信メールの整理といった応用テクニックまで、初心者にも分かりやすく解説します。

なぜPythonでOutlookを操作するの?

通常、プログラムからメールを送信するには、SMTPサーバーという専門的な設定が必要で、少しハードルが高いと感じる方もいるかもしれません。

しかし、今回紹介する方法なら、

  • 面倒なサーバー設定は一切不要!
  • 普段使っているOutlookのアカウントをそのまま使える!
  • 驚くほど短いコードで実現できる!

という大きなメリットがあります。

Pythonがあなたの代わりにOutlookを操作してくれるイメージです。

Step 1: 準備はこれだけ!ライブラリのインストール

まず、PythonからWindowsアプリケーションを操作するための「魔法の杖」となるライブラリpywin32をインストールします。

WindowsのコマンドプロンプトやPowerShellを開いて、以下のコマンドを一行入力し、Enterキーを押してください。

pip install pywin32

これだけで準備は完了です!

【注意】 この方法は、Windows PCにOutlookがインストールされ、メールアカウントが設定されていることが前提となります。

Step 2: 魔法の7行コード!基本のメール送信

それでは、実際にメールを送信するコードを見ていきましょう。

テキストエディタ(VSCodeなど)に以下のコードを貼り付けて、your_script.pyのような名前で保存してください。

import win32com.client as win32

# 1. Outlookを起動する
outlook = win32.Dispatch('outlook.application')

# 2. 新しいメールを作成する
mail = outlook.CreateItem(0)

# 3. メールの内容を設定する
mail.To = 'recipient@example.com' # 宛先アドレス
mail.Subject = 'Pythonからのテストメール' # 件名
mail.Body = 'これはPythonプログラムから自動で送信されたメールです。' # 本文

# 4. メールを送信する
mail.Send()

print("メールを送信しました!")

mail.Toの部分を送信したい相手のメールアドレスに書き換えて、このPythonスクリプトを実行してみてください。

あなたのOutlookから自動でメールが送信されるはずです!

たったこれだけで、毎日の報告メールなどを自動化する第一歩が踏み出せます。

Step 3: もっと便利に!応用テクニック集

基本のメール送信ができるようになったら、次はもっと実用的なテクニックに挑戦してみましょう。

1. CCやBCCを追加する

関係者にもメールを送りたい場合は、CCやBCCプロパティを使います。

複数のアドレスはセミコロン(;)で区切ります。

mail.CC = 'person1@example.com; person2@example.com'
mail.BCC = 'boss@example.com'

2. ファイルを添付する

報告書やExcelファイルを添付するのも簡単です。

Attachments.Add()メソッドにファイルのフルパスを指定します。

attachment_path = 'C:\\Users\\YourName\\Documents\\report.xlsx'
mail.Attachments.Add(attachment_path)

3. HTMLメールでリッチな表現を

文字を太くしたり、リンクを貼ったりしたい場合は、HTML形式でメールを作成します。

mail.BodyFormat = 2 # 2はHTML形式
mail.HTMLBody = """
<h3>日次レポートのご連絡</h3>
<p>本日の売上レポートを添付いたしました。</p>
<p>詳細は<a href="https://internal.portal.site">社内ポータル</a>をご確認ください。</p>
"""

4. 送信せずに「下書き」に保存する

いきなり送信するのが不安な場合は、mail.Send()の代わりにmail.Save()を使うと、Outlookの下書きフォルダにメールが保存されます。

内容を確認してから手動で送信できるので安心です。

mail.Save()
print("下書きフォルダに保存しました。")

Step 4: メールの受信も自動化できる!

pywin32のすごいところは、送信だけでなく受信メールの操作もできる点です。

例えば、「受信トレイにある件名『日報』のメールから添付ファイルを自動で特定のフォルダに保存する」といった処理も自動化できます。

import os

outlook = win32.Dispatch('outlook.application')
namespace = outlook.GetNamespace("MAPI")
inbox = namespace.GetDefaultFolder(6) # 6は受信トレイ

save_folder = "C:\\DailyReports"
if not os.path.exists(save_folder):
    os.makedirs(save_folder)

for message in inbox.Items:
    if "日報" in message.Subject and message.Attachments.Count > 0:
        for attachment in message.Attachments:
            # 添付ファイルを保存
            attachment.SaveAsFile(os.path.join(save_folder, attachment.FileName))
            print(f"'{attachment.FileName}'を保存しました。")

このコードを定期的に実行するように設定すれば、面倒なファイル保存作業から解放されます!

まとめ

今回は、Pythonとpywin32ライブラリを使ってOutlookのメール操作を自動化する方法をご紹介しました。

  • 簡単なコードでメールの自動送信ができる
  • ファイル添付やHTMLメールなどの応用も可能
  • 受信メールの整理や添付ファイルの保存も自動化できる

単純な繰り返し作業はプログラムに任せて、あなたはもっと創造的な仕事に時間を使いましょう。

この記事が、あなたの業務効率化のきっかけになれば幸いです!

ぜひ、あなたの身の回りの「面倒なメール作業」をPythonで自動化してみてください。

本ブログ「ゴマフリーダムのPython教室」のトップページへは以下へアクセス!

Tips集
シェアする
ゴマフリーダムをフォローする

達人に学ぶDB設計 徹底指南書

最短コースでわかる ディープラーニングの数学

あたらしい機械学習の教科書 第3版

ゼロから作るDeep Learning ―Pythonで学ぶディープラーニングの理論と実装

統計学入門

タイトルとURLをコピーしました