【2025年版】Pythonで自動メール送信をする方法|Gmail連携ガイド
「毎日のメール送信を自動化したい」
「GmailとPythonを連携できるの?」
そんな方に向けて、本記事ではPythonを使ったメール送信の自動化方法を解説します。
smtplib
を使った基本から、Gmail連携の実践例までまとめました。
1. Pythonでメール送信ができる理由
Pythonには標準ライブラリとして smtplib
が用意されており、追加インストールなしでメール送信が可能です。
GmailのSMTPサーバーと連携すれば、日報やレポートの自動送信が実現できます。
2. Gmailの準備
Gmailを使うには、アプリパスワードを発行しておく必要があります。
- Googleアカウントにログイン
- 2段階認証を有効化
- 「アプリパスワード」を発行し、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
を使った基本送信から、添付ファイルつきメール、自動レポート配信まで応用可能です。
業務効率化や副業案件にもつながるスキルなので、ぜひ実践してみてください。
👉 関連記事:フォルダ整理の自動化 と組み合わせれば、ファイル生成から送信まで一気に自動化できます。