毎日決まったメールを作って送るのって面倒くさいなー
自動でやれたら楽なのに
メール作って送ることならプログラムで自動化できるよ!
僕が良く使うPythonで作ったソースコードと一緒にやり方を紹介するね
業務報告や見積もり依頼など、事務職だと決まった文面でメールを送ることありますよね?
ほとんど文面が決まっているのに毎回メールを手打ちするのは非常に面倒くさいです。
コピペするにしてもテンプレートを探すのが面倒だったり…
僕が実際にPythonを使って自動化した時のソースコードと合わせて記事に載せています。
この記事で分かることは以下の通りです。
- Pythonを使ってメール作成・送信を自動化する方法
- メール自動化プログラムのソースコード
- ソースコードの解説
この記事を通して毎日の定型メール作成作業から解放されます。
今回作ったメール自動化アプリ
今回作ったのはどんなアプリ?
今回作ったアプリは以下の通りのものです。
今回作ったアプリ
業務開始メールを自動作成してくれるアプリ
業務開始メールを作成してくれるメールです。
送信まで自動で行うことも可能です。
業務開始メールの例文
そもそも業務開始メールって何?
業務開始メールとは以下通りのものです。
業務開始メールとは?
自分が業務を開始したことを上司に知らせるためのメール
在宅勤務をするときによくあるルールですね
業務開始メールは毎朝送る必要があるため、今回はこちらを自動化していきます。
今回作成する業務開始メールの例文は以下の通りです。
例文
○○さん
おはようございます。
8:00より本日の業務を開始します。
よろしくお願いします。
業務開始メールを自動化する効果
メールを自動化するとどのくらい効果があるの?
上の業務開始メールを作り始めてから送信までに3分くらいはかかると思います。
平日毎日3分、年間稼働日が240日とすると
1年でメールに使う時間
3分×240日 = 720分 =12時間
一年間で12時間も業務開始メールに費やすことになります。
自動化すれば12時間の自由時間が得られるってことだね
これは大きい!
アプリの動作
今回はメールソフトとしてOutlookを使用している場合を想定します。
今回のアプリの動作は以下の流れです。
コマンドプロンプトに「python メール自動化アプリのファイル名」を打ち込みます。
今回はアドレス管理アプリの名前は「auto_mail.py」なので打ち込むコマンドは以下の通りです。
打ち込むコマンド
コマンドプロンプト上で業務開始時間を聞いてくるので入力します。
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による業務効率化事例は以下の記事で紹介します。↓
今回の内容は以上になります。
ここまで読んでくださりありがとうございました。
コメント