プログラミング PR

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

python-outlook
記事内に商品プロモーションを含む場合があります

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

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

メール送信を自動化することができれば定期的な連絡業務から解放されるのに加えてヒューマンエラーを解消することができるでしょう。本記事を皮切りにPythonによるOutlookの自動化技術を磨いていただけたら嬉しいです。

python-sidejob-start
【土日リモートOK】Pythonを使った副業の始め方とおすすめの案件獲得サイト20選Pythonのスキルを活かして副業収入を得たい人向けに本記事では副業の始め方と週1,2日や土日リモートで働ける案件を扱うおすすめのサイトを現役エンジニア目線で厳選して紹介しております。...
python-job-change
【2024年最新】Pythonエンジニアにおすすめの転職エージェント10選「転職エージェントって沢山あるけど結局どこに登録すればいいの?」このように思われているPythonエンジニアの方が多いのではないでしょうか?本記事では上記の悩みを解消すべく、Pythonエンジニアにおすすめの転職エージェントを厳選して10社ご紹介しております。...

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

object

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のメールを自動送信する際の注意点

programming-people

OutlookではGmailとは異なり、特に設定を変更することなくSMTPでメール送信が可能ですが、その分迷惑メール判定が厳しいようです。

次章で紹介するサンプルプログラムを改良して実行した結果、SPAMという文字がエラーメッセージに含まれているようなら、outlook.comサーバーに迷惑メールとみなされて送信がブロックされてしまっていることを示します。

※設定ミスなどにより数回処理に失敗すると当日はOutlookからメールが送信できなくなったりするため注意してください。

Outlookでは特段の設定なくSMTP経由でメールを送信できる分、迷惑メール判定が厳しいため注意が必要。

 

実際にOutlookのメール自動送信プログラムをPythonで書いてみよう

users

さて、本章では実際に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-sidejob-start
【土日リモートOK】Pythonを使った副業の始め方とおすすめの案件獲得サイト20選Pythonのスキルを活かして副業収入を得たい人向けに本記事では副業の始め方と週1,2日や土日リモートで働ける案件を扱うおすすめのサイトを現役エンジニア目線で厳選して紹介しております。...
python-job-change
【2024年最新】Pythonエンジニアにおすすめの転職エージェント10選「転職エージェントって沢山あるけど結局どこに登録すればいいの?」このように思われているPythonエンジニアの方が多いのではないでしょうか?本記事では上記の悩みを解消すべく、Pythonエンジニアにおすすめの転職エージェントを厳選して10社ご紹介しております。...
python-freelance
【2024年最新】Pythonエンジニアにおすすめのフリーランスエージェント25選 このような方向けに本記事ではPythonエンジニアにおすすめのフリーランスエージェントを現役エンジニア目線で厳選して25社ご紹介...
こちらの記事もおすすめ!

COMMENT

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