【2025年版】Pythonで自動メール送信をする方法|Gmail連携ガイド

「毎日のメール送信を自動化したい」 「GmailとPythonを連携できるの?」 そんな方に向けて、本記事ではPythonを使ったメール送信の自動化方法を解説します。
smtplib を使った基本から、Gmail連携の実践例までまとめました。

1. Pythonでメール送信ができる理由

Pythonには標準ライブラリとして smtplib が用意されており、追加インストールなしでメール送信が可能です。
GmailのSMTPサーバーと連携すれば、日報やレポートの自動送信が実現できます。

2. Gmailの準備

Gmailを使うには、アプリパスワードを発行しておく必要があります。

  1. Googleアカウントにログイン
  2. 2段階認証を有効化
  3. 「アプリパスワード」を発行し、Python用に保存

3. 基本コード:テキストメール送信


import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart

# Gmailの設定
smtp_server = "smtp.gmail.com"
port = 587
sender = "あなたのアドレス@gmail.com"
password = "アプリパスワード"

receiver = "相手のアドレス@example.com"

# メール作成
msg = MIMEMultipart()
msg["Subject"] = "Pythonからの自動メール"
msg["From"] = sender
msg["To"] = receiver

body = MIMEText("このメールはPythonから自動送信されました。")
msg.attach(body)

# 送信
with smtplib.SMTP(smtp_server, port) as server:
    server.starttls()
    server.login(sender, password)
    server.send_message(msg)

print("メールを送信しました!")
  

4. 添付ファイルつきメール


from email.mime.base import MIMEBase
from email import encoders

# 添付ファイルを追加
file_path = "report.xlsx"
with open(file_path, "rb") as f:
    attach = MIMEBase("application", "octet-stream")
    attach.set_payload(f.read())
    encoders.encode_base64(attach)
    attach.add_header("Content-Disposition", f"attachment; filename={file_path}")
    msg.attach(attach)
  

5. 自動化の応用例

  • 毎日の売上レポートを自動送信
  • Webスクレイピング結果をメールで配信
  • エラーログを定期的に通知

6. セキュリティ上の注意点

  • アプリパスワードを使う(通常のログインパスワードはNG)
  • 環境変数や .env ファイルにパスワードを保存
  • 送信頻度を制御してスパム判定を回避

まとめ

PythonとGmailを組み合わせれば、日常のメール作業を簡単に自動化できます。
smtplib を使った基本送信から、添付ファイルつきメール、自動レポート配信まで応用可能です。
業務効率化や副業案件にもつながるスキルなので、ぜひ実践してみてください。

👉 関連記事:フォルダ整理の自動化 と組み合わせれば、ファイル生成から送信まで一気に自動化できます。

コメントを残す

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