nprogram’s blog

気ままに、プログラミングのトピックについて書いていきます

PythonでOutlookからメール送信

本記事について

Pythonを用いたOutlookからメール送信のソースコードになります。

以下のパッケージのインストールが必要になります。 pip install pywin32

mail.BodyFormatの値を切り替えることで、 どの形式でメールを送信するか選択できます。 (テキスト形式、HTML形式、リッチテキスト形式)

import datetime
import pathlib
import win32com.client

def send_mail(FAMILY_NAME : str, full_name : str):
    outlook = win32com.client.Dispatch("Outlook.Application")
    mail = outlook.CreateItem(0)
    # メールフォーマット:1 テキスト, 2 HTML, 3 リッチテキスト
    mail.BodyFormat = 2 # HTML
    mail.to = 'xxxx@exc.epson.co.jp'

    cc_list = ['xxxx@exc.epson.co.jp'
               'xxxx@exc.epson.co.jp',
               'xxxx@exc.epson.co.jp',
    ]

    mail.cc = ';'.join(cc_list)
    mail.bcc = ''
    dt_now = datetime.datetime.now()
    today = dt_now.strftime('%Y/%m/%d')
    mail.subject = '【タイトル】' + ' ' + full_name + ' ' + today
    mail.bodyFormat = 2

    text_file_path = "data\src\message.txt"
    f = open(text_file_path, 'r', encoding='UTF-8')
    text_message = f.read()
    f.close()
    mail.body = text_message.replace(r"{{FAMILY_NAME}}", FAMILY_NAME)

    # 出来上がったメールを確認します。
    mail.Display(True)

FAMILY_NAME = 'FAMILY_NAME'
FIRST_NAME = 'FIRST_NAME'
FULLNAME = FAMILY_NAME + FIRST_NAME

send_mail(FAMILY_NAME, FULLNAME)