Outlookでのメール送信をPythonで自動化するコード例

  1. OutLook でのメール送信を自動化したいけど、どうやればいいかわからない。
  2. コード例を知りたい。

今回は、こんな人に向けて記事を書いています。

日々のOutlookでのメール送信。。。
これらを自動化することができれば、とても楽になりますよね!

今回は、Pythonを使ってOutlookでのメール送信を自動化するコードを解説していきます。

Cc, Bcc , ファイル添付の方法など!メールの操作は全て盛り込んでありますので、
これから、メール送信を自動化したいと考えている人は、参考にしてみてください。

メール送信の基本パターン

メール送信の前に、
まずは、メール送信の基本パターンをおさらいしておきます。

ここでいう、メール送信の基本パターンは、
テキスト形式の書式、添付ファイル付き、複数の宛先を設定する方法です。

今回は、このような形式のメールを送信することを想定しています。

Bccや、ファイルの添付などがいらない場合は、適宜コードから削除してもらえれば問題ありません。

あべべ

コードの中に、削除する部分は示しておきます!

メール送信のための各種設定項目

次にメール送信のための設定を確認します。

今回、Outlookでのメール送信の際には、以下の項目を設定します。

メール送信、メール受信ともに、windowsを操作するAPIであるWin32.comを活用します。

ライブラリ・オブジェクト・メソッド・プロパティなど
使用するライブラリwin32com.client
Outlookの指定outlook == win32com.client.Dispatch

("Outlook.application")
メールの新規作成mail = outlook.CreateItem(0)
送信元mail.SentOnBehalfOfName
メールアドレス
書式設定mailBodyFormat = 1 (Text)
mailBodyFormat = 2 (HTML)
送信先・宛先mail.To
CCmail.Cc
BCCmail.Bcc
メールタイトルmail.Subject
メール本文mail.Body
添付ファイルmail.Attachments.Add()
メールの表示mail.Display()
メールの保存mail.Save()
メールの送信mail.Send()

サンプルプログラム

import win32com.client
import os

outlook = win32com.client.Dispatch("Outlook.application")
mail = outlook.CreateItem(0)

# mail.SendOnBehalfOfName = "test@test.com" #送信元メールアドレス--------------------①
# mail.SendUsingAccount = "test@gmail.com"

mail.BodyFormat = 1 #書式設定

mail.To = "test_To@test.com"
mail.Cc = "test_cc@test.com;test_cc_02@test.com;test_cc_03@test.com"---------------②

mail.Bcc = "test_bcc@test.com"
mail.Subject = "メールタイトル"

#メール本文
mail.Body = "○○様" + "\n\n" + "いつもお世話になっています。"--------------------------③
#プログラムのディレクトリパス(folder_path)の取得
foleder_path = os.path.dirname(__file__)

#エクセルのファイルパス
attachments_file_path_1 = folder_path + os.sep + "test1.txt"
attachments_file_path_2 = folder_path + os.sep + "test2.txt"
attachments_file_path_3 = folder_path + os.sep + "test3.txt"

mail.Attachment.Add(attachments_file_path_1)---------------------------------------④
mail.Attachment.Add(attachments_file_path_2)
mail.Attachment.Add(attachments_file_path_3)

mail.Display()  #メールの表示

mail.Save() #メールの保存
# mail.Send()   #メールの送信


送信元を指定することが可能です。
もし設定しないと、1番目のアカウントが送信元のメールアドレスとなります。


複数のメールアドレスを設定するときは、セミコロン(;)で区切ります。


メール本文において、改行するときは「\n\n」(もしくは「¥n¥n」)を用います。


mailオブジェクトのAttachmentメソッドのAddプロパティで添付ファイル指定することができます。

あべべ

注意点です!
このサンプルプログラムで記載してあるメールアドレスは、存在していません。

このプログラムを使って、存在していないメールアドレスに、送信を繰り返すと、アカウントのロックがかかる場合がありますので、注意してください!

まとめ

今回は、Outlookでのメール送信をPythonで自動化するコード例を紹介しました。

Pythonでは、自動化にもってこいのツールです。その他のpython活用事例も紹介していますので併せてご覧ください。

(Visited 246 times, 3 visits today)