Python

【Python初心者】
毎日定時にOutlookメールを自動送信する方法

(更新日:2022/01/19)

こんな記事です。

面倒な定型メールの送信を自動化する仕組みです。メールテンプレートを作っておけば、あとは定時になるとPCが勝手にメール送信してくれます。繰り返し同じ動作をするので、「毎日このメール作成するの面倒なんだよな。」という方にピッタリの内容です。また、自分に向けたリマインドメールに使うのもありと思います。今回はWindowsユーザー向けに記事を書いています。Windowsタスクスケジューラ-、Python、Excel、Outlookを連携させ、毎日のルーティーンワークから、解放されましょう!

想定読者

「毎日、毎日、同じようなメール作成にうんざりしてるよ。」という方。

「PC作業自動化=RPA(Robotic Process Automation)に興味あるよ!」という方。

やり方

Pythonインストール

まず初めに、Pythonをまだインストールしていない方は、

こちらからAnacondaと呼ばれるパッケージごとインストールしてください。

この中に、Python.exeを始め、必要なものがだいたいそろっています。

今回ご紹介するPythonコードは、OS環境が同じであれば、

基本コピペで動作すると思います。

私も勉強中なので、心配しないでください。(汗

ちなみに私のOSは、

Windows10, 64bitです。

今回作成するプログラムの詳しい手順については、

こちらの動画を参考にしました。

なお、プログラムの使用については、あくまで自己責任でお願いします。

Pythonプログラムのコーディングには、

Python用の統合開発環境IDLEと略記:Integrated DeveLopment Environment)

というものを使いました。

システム全体像

メール自動送信システムへの登場人物は、

Windowsタスクスケジューラ-、Python、Excel、Outlookです。

全体フローは以下の通りです。

  1. Windowsタスクスケジューラ-で、定時にPythonファイル実行するタスクを作成
  2. Pythonファイル実行
  3. Excelファイルに記載した宛先、内容、添付ファイルの読み込み
  4. Outlook起動・メール送信

Pythonプログラム

さっそく、Pythonコードの全体像です。

Excelファイル(宛先・内容管理)

メールの宛先や内容を記載するExcelファイルは、こんな感じです。

参考にしてください。

プログラム実行

さきほどのPythonプログラムと、宛先管理Excelを同じフォルダに格納し、

えいやっと、作成したPythonプログラムをとりあえず実行してみましたが、

早速エラー発生です。

エラー内容は以下。

[win32com]なんていうモジュールは見つかんないよ。と言っています。

[Windows]ボタンを押し、検索窓に[cmd]と入力します。

コマンドプロンプトが検索されるので、[Enter]キーで起動します。

コマンドプロンプトが立ち上がったら、[pip install pywin32] を実行し、

Excel操作に必要なライブラリ[pywin32]をインストールします。

Windowsの機能をPythonから操作するためのアクセス権=APIs を

取得するというわけです。

再度、Pythonプログラムを実行します。

しかし、ここで再びエラー発生。

どうやら、[win32api]が見当たらないようです。

しょうがないので、win32apiの大元を探しに行きます。

以下のサイトに [pywin32] の最新版がありました。

Pythonのバージョンごとに、異なるファイルをダウンロードする必要があります。

https://github.com/mhammond/pywin32/releases

そこで、コマンドプロンプトから、使用しているPythonのバージョンを確認します。

 python –version と入力して Enter キーを押します。

C:\Users\owner>python –version
Python 3.9.4

Python 3.9.4みたいですね。

pywin32-303.win32-py3.9.exe をダウンロードしてみます。

詳細情報をクリック。

実行をクリック。

突き進んでいきます。

インストーラーが起動したところで結局はじかれました。

32bit版のインストーラーをダウンロードしていたのがNGみたいです。

どうやら、pythonのバージョンだけでなく、

自分が使っているPythonのbit数に合ったインストーラーでないと、

使用できないようです。

私の場合は、Python 3.9.4, 64bit版だったので、

32bit版のインストーラーはNGでした。

気を取り直して、こちらのサイトから、64bit版

pywin32-303.win-amd64-py3.9.exe をインストールします。

再度、Pythonプログラムを実行しました。

また同じようなエラーが出ます。

なんだか良く分からないのですが、

とりあえず、エラーログの内容でGoogle検索してみると、

このサイトに同じようなエラーが投稿されていました。

中身を見てると、どうやらOSの再起動が必要みたいです。

再起動してみます。

もう一度、Pythonプログラムを実行します。

今度は別のエラーが出ました。

「openpyxl」というライブラリが無いよ。という内容です。

そこで、コマンドプロンプトを再度起動し、

[pip install openpyxl]で[openpyxl]をインストールします。

C:\Users\owner>pip install openpyxl
Collecting openpyxl
Using cached openpyxl-3.0.9-py2.py3-none-any.whl (242 kB)
Collecting et-xmlfile
Using cached et_xmlfile-1.1.0-py3-none-any.whl (4.7 kB)
Installing collected packages: et-xmlfile, openpyxl
Successfully installed et-xmlfile-1.1.0 openpyxl-3.0.9
WARNING: You are using pip version 20.2.3; however, version 21.3.1 is available.
You should consider upgrading via the ‘c:\users\owner\appdata\local\programs\python\python39\python.exe -m pip install –upgrade pip’ command.

こんな結果が表示されます。

でもって、再度Pythonプログラムを実行します。

・・・・・・・・

・・・・・・・・

・・・・・・・・

Outlookにメールが届きました!

成功です。

タスクスケジューラ-の設定

あとはタスクスケジューラ-で、定時にこのPythonプログラムを実行する

タスクを作成していきます。

タスクスケジューラ-の使い方は、こちらの動画を参考にしました。

タスクスケジューラ-でのタスク設定は、

そんなに難しくないので、ここまでこれば自動化完成です!

まとめ

いかがでしたでしょうか?

やや登場人物が多いですが、毎日のメール作成の手間が減りますし、

いろいろと応用も聞きそうな仕組みなので、ぜひ自分なりにアレンジしてみてください。

また、こちらの記事も参考にしてみてください。

「誕生日AM0時ピッタリにお祝いメッセージをグループLINEに自動送信する方法」

ではでは!