【Python】Outlookの自動メール送信

スポンサーリンク

内部の工数削減のために駆り出されました。。。
『ある条件成立時に、メールを送ってほしい』との事!

その為、今回はPythonで『メールの送信方法』を作りたいと思います。

メールの送信で使うパッケージ 【win32com.client】

他にもあったのですが、次回の機会にして今回はこのパッケージ【 win32com.client 】でいきます。
まずは、メールを送る前準備の行っていきます。

import win32com.client

#魔法の言葉で、Outlookを使える状態に
outlook = win32com.client.Dispatch("Outlook.Application")

#instance生成(メール)
mail = outlook.CreateItem(0)

[ mail = outlook.CreateItem(0) ]部分はメールを使うときは、「0」にします。

0 : メール
1 : 予定
2 : 連絡先
3 : タスク

メールを作成する

メールを作成していきます。

#送信先
mail.to = "************@gmail.com;"

#件名
mail.subject = "【自動送信】メールテスト"

#MailFormat Text
mail.bodyFormat = 1

#Mail本文
mail.body = "Hallow world!!"

見た目通りですが簡単に説明します。

to:送信先
subject:件名
bodyFormat:形式(1:テキスト / 2:HTML / 3:リッチテキスト)
body:本文

outlookの画面では下記の部分

メールの送信

基本的には確認無しで送りたいですが、確認する事もできます。

#メール内容確認    
mail.display(True)

#メール送信
#mail.Send()

【 display(True) 】で確認ができます。

確認せずに送る時は、Send()で送信することができます。

差出人を変更したい時

自分が困ったのはココでした。。。
自分のoutlookには、メールアドレスが複数(メール①とメール②)あったのです。
しかし、メールの差出人はいつもメール①になり、メール②で送れないか考えました。
結果として、このパッケージでは、差出人を指定する事はできそうにありませんでした。

そこで、【新規メール作成のデフォルトを変更すること】で対応することにしました。

ウィンドウ上部の【ファイル】→【オプション】

【メール】→【新しいメッセージを作成するときはいつも既定のアカウントを使う(U)】にチェック

次に『既定のアカウントを変更』したいと思います。
ウィンドウ上部の【ファイル】→【情報】→【アカウント設定】→【アカウント設定】

【メール】のタブから、アカウントを選択して、【既定に設定】をクリック

この設定をする事で、今回のメール作成のScriptの差出人は、指定する(?)することができました。

まとめ

本当にメールを自動で作ってくれるようになり、定期的なメールはこれで対応できそうです。
さすがPythonだなぁ~って思うくらいソースコードは少ないですね。

最後に今回のサンプルソースを記載しておきます。
残りは自分たちの状況に応じて、アレンジしてください。

import win32com.client

#魔法の言葉で、Outlookを使える状態に
outlook = win32com.client.Dispatch("Outlook.Application")

#instance生成(メール)
mail = outlook.CreateItem(0)

#送信先
mail.to = "************@gmail.com;"

#件名
mail.subject = "【自動送信】メールテスト"

#MailFormat Text
mail.bodyFormat = 1

#Mail本文
mail.body = "Hallow world!!"

#メール内容確認    
mail.display(True)

#メール送信
#mail.Send()

コメント

タイトルとURLをコピーしました