Outlookでのメール送信をPythonで自動化するコード例
- OutLook でのメール送信を自動化したいけど、どうやればいいかわからない。
- コード例を知りたい。
今回は、こんな人に向けて記事を書いています。
日々の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 |
CC | mail.Cc |
BCC | mail.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活用事例も紹介していますので併せてご覧ください。