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

かりん

毎日決まったメールを作って送るのって面倒くさいなー
自動でやれたら楽なのに

なおひ

メール作って送ることならプログラムで自動化できるよ!
僕が良く使うPythonで作ったソースコードと一緒にやり方を紹介するね

業務報告や見積もり依頼など、事務職だと決まった文面でメールを送ることありますよね?

ほとんど文面が決まっているのに毎回メールを手打ちするのは非常に面倒くさいです。

コピペするにしてもテンプレートを探すのが面倒だったり…

そこで今回はプログラムの力を使ってメール作成と送信を自動化する方法を紹介します。

僕が実際にPythonを使って自動化した時のソースコードと合わせて記事に載せています。

この記事の著者
  • 新卒配属部署が残業地獄&休出多数
  • キャリアコーチングで悩みを明確化
    ⇒社内公募で異動成功
  • 現在は在宅勤務+毎日定時な会社員
  • 仕事に余裕をもつための情報を配信中

運営者プロフィール・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による業務効率化事例は以下の記事で紹介します。↓

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

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

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする

目次