プログラミング

【SMTP】Pythonを使ったOutlookのメール自動送信方法

python-outlook

電子メールはチャットが流行っている現代でも重要なコミュニケーション手段の一つです。

本記事ではそんな電子メール、特にOutlookのメール送信をPythonを使って自動化する方法について解説していきたいと思います。

メール送信を自動化することができれば定期的な連絡業務から解放されるのに加えてヒューマンエラーを解消することができるでしょう。

本記事を皮切りにPythonによるOutlookの自動化技術を磨いていただけたら嬉しいです。

ハニ太郎
ハニ太郎
それでは早速本題に移っていきたいと思います♪
python-side-job
【土日在宅OK】Pythonの副業におすすめの案件紹介サイト5選土日を有効活用してPython副業をしてみたい!そんな方向けに本記事ではPythonの副業案件を扱うおすすめの案件紹介サイトを厳選して5つご紹介しております。...

SMTP経由でPythonからOutlookのメールを手軽に自動送信する

ロボット

Pythonからメールを送信するにはSMTPを使うのが手軽で簡単な方法と言えるでしょう。

そもそもSMTPとは?

SMTPとは、Simple Mail Transfer Protocolの略で、メールの送信プロトコルです。

OutlookではGmailとは異なり、特に設定を変更することなくSMTPでメール送信が可能です。

PythonでSMTPを扱う際はsmtplibモジュールを利用する

PythonのプログラムでSMTPを扱うにはsmtplibモジュールを利用します。

smtplibモジュールはPythonに標準で搭載されているためターミナルからpipコマンドなどで別途インストールする必要はありません。

Pythonからメールを送信するにはSMTPを使うのが手軽で簡単。smtplibモジュールを利用することで簡単にプログラムを実装することができる。

 

SMTP経由でPythonからOutlookのメールを自動送信する際の注意点

How to

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などのサイトで学習してみることをオススメします。

とりあえず上記のコードを活用すれば基本的なOutlookのメール自動送信処理は実装可能なはずです。

 

【SMTP】Pythonを使ったOutlookのメール自動送信まとめ

python-outlook

ここまでPythonを使ったSMTP経由でのOutlookメールの自動送信方法について解説してきましたがいかがだったでしょうか?

本記事の内容はあくまで入門レベルですので、これから専門書やサイトなどを参考にしてスキルを磨いていく必要があります。

その歩みの第一歩として本記事の内容が少しでもあなたのお役に立てたのなら幸いです。

python-side-job
【土日在宅OK】Pythonの副業におすすめの案件紹介サイト5選土日を有効活用してPython副業をしてみたい!そんな方向けに本記事ではPythonの副業案件を扱うおすすめの案件紹介サイトを厳選して5つご紹介しております。...
こちらの記事もおすすめ!

COMMENT

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です