1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

PythonでGmailを送信する方法【アプリパスワードを使ったSMTP設定】

Last updated at Posted at 2025-01-28

はじめに

PythonでGmailを送信する際、smtplib モジュールが便利です。この記事では、Googleアカウントのセキュリティを高めるために「アプリパスワード」を使用し、SMTP設定を行う方法を詳しく解説します。

なぜアプリパスワードが必要なのか?

Googleアカウントでは、セキュリティ強化のため「2段階認証」が推奨されています。2段階認証を有効にすると、パスワードに加えて、スマートフォンなど別のデバイスでの認証も必要になります。しかし、PythonプログラムからGmailにアクセスする場合、毎回スマートフォンで認証するのは手間がかかります。そこで、「アプリパスワード」が役立ちます。

アプリパスワードは、特定のアプリやデバイスに対して生成されるパスワードで、通常のパスワードの代わりに使用することができます。

アプリパスワードの設定方法

  1. Googleアカウントにログインする
  2. セキュリティの設定を開く
  3. アプリパスワードを選択する
  4. アプリを選択する
    • 今回は「メール」を選択するのが一般的です。
  5. デバイスを選択する
    • 「その他」を選択し、アプリ名として「Python」などを指定します。
  6. アプリパスワードを生成する
    • 生成されたパスワードをメモしておきます。

Pythonコード

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

# Gmailアカウント情報
sender_email = "your_email@gmail.com"  # 自分のGmailアドレス
app_password = "your_app_password"  # アプリパスワード
receiver_email = "recipient_email@gmail.com"  # 受信者のメールアドレス

# メール内容
subject = "PythonでのGmail送信テスト"
body = """
こんにちは、
Pythonを使ってメールを送信しました!

よろしくお願いします。
"""

# メールメッセージの作成
message = MIMEMultipart()
message["From"] = sender_email
message["To"] = receiver_email
message["Subject"] = subject

# 本文の追加
message.attach(MIMEText(body, "plain"))

try:
    # GmailのSMTPサーバーに接続
    with smtplib.SMTP("smtp.gmail.com", 587) as server:
        server.starttls()  # TLS(暗号化)を開始
        server.login(sender_email, app_password)  # ログイン
        server.send_message(message)  # メールの送信
        print("メールが送信されました!")
except Exception as e:
    print(f"エラーが発生しました: {e}")

コード解説

  • smtplib: Python標準ライブラリのモジュールで、SMTPプロトコルを使ってメールを送信するための機能を提供します。
  • MIMEText: メール本文を作成するためのクラスです。
  • MIMEMultipart: 複数のMIMEパートを含むメールを作成するためのクラスです。
  • SMTPサーバー: GmailのSMTPサーバーはsmtp.gmail.com、ポート番号は587です。
  • TLS: 通信を暗号化するプロトコルです。

注意点

  • アプリパスワードの秘密保持: アプリパスワードは、通常のパスワードと同様に厳重に管理してください。
  • セキュリティ: 最新のPythonバージョンとライブラリを使用し、定期的にセキュリティアップデートを行うことを推奨します。
  • エラー処理: try-exceptブロックを使用して、エラーが発生した場合に適切な処理を行うようにしましょう。

まとめ

この記事では、Pythonのsmtplibモジュールを使用して、Googleアカウントのアプリパスワードを用いてGmailを送信する方法を解説しました。この方法を用いることで、セキュリティを確保しながらPythonからメールを送信することができます。

補足:

  • 安全性の低いアプリの許可: 2022年以降、Googleは「安全性の低いアプリの許可」を廃止しました。そのため、アプリパスワードを使用する必要があります。
  • SMTP設定: GmailのSMTPサーバーはsmtp.gmail.com、ポートは587 (TLSを使用)です。
1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?