電子メールはチャットが流行っている現代でも重要なコミュニケーション手段の一つです。
本記事ではそんな電子メール、特にOutlookのメール送信をPythonを使って自動化する方法について解説していきたいと思います。
メール送信を自動化することができれば定期的な連絡業務から解放されるのに加えてヒューマンエラーを解消することができるでしょう。本記事を皮切りにPythonによるOutlookの自動化技術を磨いていただけたら嬉しいです。
目次
SMTP経由でPythonからOutlookのメールを手軽に自動送信する
Pythonからメールを送信するにはSMTPを使うのが手軽で簡単な方法と言えるでしょう。
そもそもSMTPとは?
SMTPとは、Simple Mail Transfer Protocolの略で、メールの送信プロトコルです。
PythonでSMTPを扱う際はsmtplibモジュールを利用する
PythonのプログラムでSMTPを扱うにはsmtplibモジュールを利用します。
smtplibモジュールはPythonに標準で搭載されているためターミナルからpip
コマンドなどで別途インストールする必要はありません。
Pythonからメールを送信するにはSMTPを使うのが手軽で簡単。smtplibモジュールを利用することで簡単にプログラムを実装することができる。
SMTP経由でPythonからOutlookのメールを自動送信する際の注意点
OutlookではGmailとは異なり、特に設定を変更することなくSMTPでメール送信が可能ですが、その分迷惑メール判定が厳しいようです。
次章で紹介するサンプルプログラムを改良して実行した結果、SPAMという文字がエラーメッセージに含まれているようなら、outlook.comサーバーに迷惑メールとみなされて送信がブロックされてしまっていることを示します。
※設定ミスなどにより数回処理に失敗すると当日はOutlookからメールが送信できなくなったりするため注意してください。
Outlookでは特段の設定なくSMTP経由でメールを送信できる分、迷惑メール判定が厳しいため注意が必要。
実際にOutlookのメール自動送信プログラムをPythonで書いてみよう
さて、本章では実際にSMTP経由でOutlookのメールを自動送信するプログラムをPythonを使って書いてみましょう(^^)
以下、SMTP経由でOutlookメールを自動送信するプログラムのサンプルです。なお、コード内に記載のMIME形式については後述します。
import smtplib, ssl
from email.mime.text import MIMEText
# Outlook設定
my_account = 'XXX@outlook.jp'
my_password = 'XXXXXXXX'
def send_outlook_mail(msg):
"""
引数msgをOutlookで送信
"""
server = smtplib.SMTP('smtp.office365.com', 587)
server.ehlo()
server.starttls()
server.ehlo()
# ログインしてメール送信
server.login(my_account, my_password)
server.send_message(msg)
def make_mime(mail_to, subject, body):
"""
引数をMIME形式に変換
"""
msg = MIMEText(body, 'plain') #メッセージ本文
msg['Subject'] = subject #件名
msg['To'] = mail_to #宛先
msg['From'] = my_account #送信元
return msg
def send_my_message():
"""
メイン処理
"""
# MIME形式に変換
msg = make_mime(
mail_to='XXX@outlook.jp', #送信したい宛先を指定
subject='テスト件名',
body='テストです。テストです。テストです。')
# gmailに送信
send_outlook_mail(msg)
if __name__ == '__main__':
send_my_message()
コード内に出てきたMIMEとは、Multipurpose Internet Mail Extensionsの略で、標準の電子メールデータの規格になります。
MIMEはメール処理の自動化には欠かせない知識ですので、この機会にMDN Web Docsなどのサイトで学習してみることをオススメします。
【SMTP】Pythonを使ったOutlookのメール自動送信|まとめ
ここまでPythonを使ったSMTP経由でのOutlookメールの自動送信方法について解説してきましたがいかがだったでしょうか?
本記事の内容はあくまで入門レベルですので、これから専門書やサイトなどを参考にしてスキルを磨いていく必要があります。
その歩みの第一歩として本記事の内容が少しでもあなたのお役に立てたのなら幸いです。