目次
概要
Pythonでスクリプトを自動化している中で、Outlookを使ってメールを送れたら便利だなと思い、
今回は PythonからOutlookのSMTPサーバーを利用してメールを送信する方法を学びました。
メール通知を自動化することで、処理完了の報告やアラート送信などに活用できます。
実現したい仕様
- 件名と本文を指定してメールを送信
- 送信元・送信先は任意のアドレスに設定
- OutlookのSMTPサーバーを利用(ポート587 + STARTTLS)
実装コード(Python)
import smtplib
from email.mime.text import MIMEText
# メール内容の設定
subject = "Hello World"
body = "Hello World at Midnight"
sender_email = "your-email@outlook.com"
receiver_email = "receiver-email@example.com"
password = "your-email-password"
# メール本文をMIMETextで作成
message = MIMEText(body)
message["Subject"] = subject
message["From"] = sender_email
message["To"] = receiver_email
# SMTPサーバーへ接続(Outlookの場合)
server = smtplib.SMTP("smtp-mail.outlook.com", 587)
server.starttls()
server.login(sender_email, password)
# メール送信
server.sendmail(sender_email, receiver_email, message.as_string())
server.quit()
各項目の補足
MIMEText()はテキスト形式のメールを作成するためのクラスですsmtp-mail.outlook.comはOutlookのSMTPホスト名、ポート587はSTARTTLS用server.starttls()によって、通信が暗号化されますserver.login()にはOutlookのログイン情報を使用します(2段階認証の場合はアプリパスワードが必要)
実行時の注意点
- 以下3つは自分の環境に合わせて正しい情報に変更してください:
sender_email = "your-email@outlook.com"
receiver_email = "receiver-email@example.com"
password = "your-email-password"
- Outlookが2段階認証を使用している場合は、通常のパスワードではなくアプリパスワードが必要です
- Outlook側の「安全性の低いアプリの許可」などの設定によって、接続が制限される場合もあります
まとめ
- PythonからOutlookメールを送信するには、
smtplibとemail.mime.textを使用 MIMETextで本文を作成し、SMTPサーバーへ接続して送信するだけ- 自動レポートや通知メールなど、様々な用途に応用可能
Pythonでのメール送信にチャレンジしたい方の参考になれば幸いです。
技術書の購入コストを抑えてスキルアップするなら

ここまで読んでいただきありがとうございます。最後に宣伝をさせてください。
プログラミングの技術書や参考書は、1冊3,000円〜5,000円するものも多く、出費がかさみがちです。Kindle Unlimitedであれば、月額980円で500万冊以上の書籍が読み放題となります。
気になる言語の入門書から、アルゴリズム、基本設計の専門書まで、手元のスマホやPCですぐに参照可能です。現在は「30日間の無料体験」や、対象者限定の「3か月499円プラン」なども実施されています。まずはご自身のアカウントでどのようなオファーが表示されるか確認してみてください。
