【業務効率化】Outlookメール送信をPythonで自動化する

この記事で分かること
  • Pythonを使った業務効率化事例
  • Pythonでメールを自動化する方法
  • メール自動化のソースコード
かりん

毎日決まったメールを送るのって面倒だよー

なおひ

それもプログラムで自動でやれるよ

かりん

どうやるの?教えて!

今回はプログラミングでメールを自動で作成し、送る方法をご紹介します。

実際に僕がPythonで行っているメールの自動化方法について紹介します。

なおひ

ソースコードも載せているのでコピペして使ってください!

こんな人にオススメ
  • メール作成の手間を減らしたい人
  • Pythonを使った業務効率化事例を知りたい人
  • Pythonでメール自動化をする方法を知りたい人
この記事の著者
  • 本業と副業を両立する会社員
  • プログラミングで業務効率化
    (残業時間80H⇒20H)
  • 社内公募に合格
    在宅勤務+ほぼ定時の働き方を得る

運営者プロフィール・Twitter(@Naohi99

\無料でPythonの講座が受けられる!/

目次

今回作ったメール自動化アプリ

かりん

今回作ったのはどんなアプリ?

今回作ったアプリは以下の通りのものです。

今回作ったアプリ

業務開始メールを自動作成してくれるアプリ

なおひ

業務開始メールを作成してくれるメールです。
送信まで自動で行うことも可能です。

業務開始メールの例文

かりん

そもそも業務開始メールって何?

業務開始メールとは以下通りのものです。

業務開始メールとは?

自分が業務を開始したことを上司に知らせるためのメール

なおひ

在宅勤務をするときによくあるルールですね

業務開始メールは毎朝送る必要があるため、今回はこちらを自動化していきます。

今回作成する業務開始メールの例文は以下の通りです。

例文

○○さん

おはようございます。

8:00より本日の業務を開始します。

よろしくお願いします。

業務開始メールを自動化する効果

かりん

メールを自動化するとどのくらい効果があるの?

上の業務開始メールを作り始めてから送信までに3分くらいはかかると思います。

平日毎日3分、年間稼働日が240日とすると

1年でメールに使う時間

3分×240日 = 720分 =12時間

一年間で12時間も業務開始メールに費やすことになります。

なおひ

自動化すれば12時間の自由時間が得られるってことだね

かりん

これは大きい!

アプリの動作

今回はメールソフトとしてOutlookを使用している場合を想定します。

今回のアプリの動作は以下の流れです。

STEP
コマンドプロンプト上でメール自動化アプリを起動

コマンドプロンプトに「python メール自動化アプリのファイル名」を打ち込みます。

今回はアドレス管理アプリの名前は「auto_mail.py」なので打ち込むコマンドは以下の通りです。

打ち込むコマンド

python auto_mail.py

STEP
業務開始時間を入力

コマンドプロンプト上で業務開始時間を聞いてくるので入力します。

STEP
Outlookを起動し、メールを自動作成

Outlookが起動し、プログラム上で決めておいた文章+業務開始を使ってメールが作成されます。

後は送信をしたら完了です。(自動で送信も可能です)

自動メールアプリのソースコードとライブラリ

かりん

どうやったら作れるの?

今回作ったアプリのソースコード全文と各要素の動作について説明します。

動作環境

動作環境

OS:Windows 10
メールソフト:Microsoft Outlook
使用言語:Python 3.8

ソースコード

今回作ったもののソースコードは以下の通りです。

ソースコード

#! python3 メール自動送信

#**** Libraries **************************************
import win32com.client  #Outlookを起動し、操作する
import datetime      #日付を取得する

#**** Main *******************************************

#勤務開始時間入力
today = datetime.date.today()
print("勤務開始時間を入力してください。")
start_time = input()

#メール作成
outlook = win32com.client.Dispatch("outlook.Application")

mail = outlook.CreateItem(0)
mail.to = "************@xxx.com"
mail.subject = "勤務開始メール(" + str(today) + ")"
mail.bodyFormat = 2
mail.body = "○○さん"+\
            "\n"+\
            "\n"+\
            "おはようございます。"+"\n"+\
            str(start_time)+"より本日の業務を開始します。"+"\n"+\
      "よろしくお願いします。"

mail.display(True)

#mail.Send()

使用したライブラリ

今回使用したライブラリは以下の通りです。

ライブラリ

import win32com.client #Outlookを起動し、操作する
import datetime     #日付を取得する

各種ライブラリは事前に以下のコマンドを入力しておくことでインストールできます。

win32comのインストール

pip install win32com

datetimeのインストール

pip install datetime

今日の日付の取得

以下の部分で今日の日付を取得します。

後ほどメールタイトルに使用します。

日付取得

today = datetime.date.today()

勤務開始時間の取得

以下の部分で勤務開始時間を取得します。

アプリをを起動すると最初にコマンドプロンプト上で勤務時間の入力を求めるメッセージを出します。

勤務開始の入力

print("勤務開始時間を入力してください。")
start_time = input()

メールの作成

以下の部分でまずOutlookを起動します。

Outlook起動

outlook = win32com.client.Dispatch("outlook.Application")

起動したらメールの新規作成を開始します。

メール新規作成

mail = outlook.CreateItem(0)

以下の部分でメールの送信先アドレスを決定します。

“************@xxx.com”の部分に送り先のメールアドレスを書き込んでください。

送り先のアドレス

mail.to = "************@xxx.com"

メールのタイトルは以下の部分で決めています。

メールタイトル

mail.subject = "勤務開始メール(" + str(today) + ")"

ここでメールの本文を作成します。

改行する場合は改行記号である ”\n” を挟み込むようにしてください。

メール本文

mail.body = "○○さん"+\
            "\n"+\
            "\n"+\
            "おはようございます。"+"\n"+\
            str(start_time)+"より本日の業務を開始します。"+"\n"+\
      "よろしくお願いします。"

以下の部分でで作成したメールを表示します。

問題なければ送信してください。

作ったメールの表示

mail.display(True)

以下の部分はメールの自動送信のコードです。

今回は自動で送信したくないのでコメントアウトしています。

もし自動送信までしたい方は先頭の#を消せばOKです。

メール自動送信

#mail.Send()

まとめ

今回のアプリで毎日送る定型メールの自動化が出来ました。

なおひ

毎日の勤務開始メールが自動化出来たおかげで結構ストレス減りました

かりん

毎日作るのって本当めんどうだもんね

毎日送る決まったメールはこの機会に自動化してしまいましょう。

\無料でPythonの講座が受けられる!/

その他のPythonによる業務効率化事例は以下の記事で紹介します。↓

今回の内容は以上になります。

ここまで読んでくださりありがとうございました。

スポンサーリンク↓

よかったらシェアしてね!

コメント

コメントする

目次
閉じる