業務開始メールを自動化(Python活用)


今回の記事の内容は以下の通りです。

  • 業務開始メールとは?
  • メール自動化の方法
  • メール自動化のソースコード

こんにちは!なおひです。
以前書いた通り社内公募で部署異動してから僕も在宅勤務になりました。

うちの会社だと業務をスタートするときに上司に業務開始メールを打つシステムになっています。

なおひ
なおひ

毎日打つの結構めんどくさいですよね。

ルールなので仕方ないですが…

少なくとも僕はめっちゃ面倒だと思っています。
そこで今回業務開始メールを自動で作るソフトを作ろう!と思い立ったので作ったやつを紹介したいと思います。

なおひ
なおひ

案外簡単に出来ました。

他のPython改善シリーズはこちら↓

https://easyful-life.com/address-list-py/

https://easyful-life.com/auto-print-py/

https://easyful-life.com/auto-excel/

目次

業務開始メールとは?

業務開始メールとは、在宅勤務をするときに上司に「仕事始めます」という内容を送るメールです。

なおひ
なおひ

毎日やると地味に時間かさむんですよね。

業務開始メールが必要な理由

上司の立場からすると「部下がちゃんと働いているか把握したい」というのが一番です。

部下の立場だと監視されているようで嫌な気持ちがするかもしれませんが、
上司の役割上部下の管理をする必要があり、
会社から「どういう管理をしているのか?」と言われたときに証拠として勤怠のメールを出したいという意図があります。

なおひ
なおひ

上司も監視するのが好きでやってる訳じゃないんです…

なので気を悪くせずに送ってあげましょう。

業務開始メールの例文

業務開始メールの例文は大まかに以下のようなものが多いと思います。
後でこの例文をベースに自動化していきます。

○○さん

おはようございます。

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

よろしくお願いします。

業務開始メールを毎日打ち続けたら

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

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

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

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

なおひ
なおひ

映画が4~5本見れる時間です。

毎朝の特に生産性のない決まった作業にこの時間を費やすのは勿体ないですよね。

なのでこれから自動化していきます。

自動化の方法

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

今回のソフトの動作は以下の流れです。

最初に勤務開始時間を聞いてきますのでそこだけ入力します。

そのあとはソフトが自動でメールを作ってくれて出来上がったメールを表示してくれます。

後は内容を確認して送信ボタンを押すだけです!

なおひ
なおひ

自動で送信も可能ですが、

トラブル防止の為に今回はやっていません

動作環境、使用言語

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

使用したライブラリ

win32com.client (Outlookを起動し、操作するライブラリです。)
datetime    (日付を取得するライブラリです。)

ソースコード

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

#! python3 メール自動送信
 
#**** Libraries **************************************
import win32com.client
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()

各機能部分の解説

この部分で今日の日付を取得します。
後ほどメールタイトルに使用します。

today = datetime.date.today()

この部分で勤務開始時間を取得します。
こちらはソフトを起動すると最初にコマンドプロンプト上で勤務時間の入力を求めるメッセージを出すようにしています。

「勤務開始時間を入力してください。」と表示されたら勤怠上の勤務開始時間を入力してください。
例えば8:00など

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

ここで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"+\
      "よろしくお願いします。"

ここで作成したメールを表示します。
問題なければ送信ボタンなり、alt + s などで送信してください。

mail.display(True)

ここはメールの自動送信のコードです。
今回は自動で送信したくないのでコメントアウトしています。
もしメール確認して自動で送信までしたい方は先頭の#を消せばメールは送信されます。

#mail.Send()

自動化した結果

業務開始メールを送るのは僕は結構ストレスでした。
仕事が始まってしまうということと、スタートを自分で切らなければならないというのが何となく嫌でした。

なおひ
なおひ

このメールを作ったら仕事始めなきゃ…

ただ、メール作成を自動化したことでメールを作るという作業が無くなり、
頭を使わずにスタートできるようになった事で朝のストレスを一つ取り除くことが出来たのは良かったなと感じています。

なおひ
なおひ

勝手に始まってしまうので諦めがつく

他にも、定型のメールを送る作業には基本的に使えるので是非参考にしながら作っていただけると嬉しいです。
余分な作業は一つずつ無くし、自分の時間を確保しましょう!

本日の内容は以上です。
ここまで読んでくださりありがとうございました。

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

この記事を書いた人

余裕ある人生を追及しています。
僕の挑戦を記事にしています。

コメント

コメントする

目次
閉じる