Skip to content

aidiary/gmail-api-tutorial

Repository files navigation

Gmail API チュートリアル

Python で Gmail API を使用してメールの送受信と添付ファイルの操作を行うためのサンプルプロジェクトです。

機能

  • 認証トークンの取得 (get_token.py)
  • メールの送信 (send_mail.py)
  • 添付ファイル付きメールの送信 (send_attachment.py)
  • メールの取得と添付ファイルのダウンロード (get_mails.py)

事前準備

1. Google Cloud Platform での設定

  1. Google Cloud Console にアクセス
  2. 新しいプロジェクトを作成、または既存のプロジェクトを選択
  3. Gmail API を有効化
  4. 認証情報(OAuth 2.0 クライアント ID)を作成
  5. クライアントシークレットファイルをダウンロードし、data/ フォルダに配置

2. 環境設定

プロジェクトルートに .env ファイルを作成し、送信者のメールアドレスを設定:

EMAIL=your-email@gmail.com

インストール

必要なパッケージをインストール:

pip install -e .

または、個別にインストール:

pip install google-api-python-client google-auth-httplib2 google-auth-oauthlib python-dotenv

使用方法

1. 初回認証

最初に認証トークンを取得します:

python get_token.py

ブラウザが開き、Google アカウントでの認証を求められます。認証が完了すると data/token.json ファイルが生成されます。

2. メール送信

シンプルなテキストメールを送信:

python send_mail.py

3. 添付ファイル付きメール送信

添付ファイル付きのメールを送信(事前に data/attachment.png を配置):

python send_attachment.py

4. メール取得

自分宛のメールを取得し、添付ファイルがあればダウンロード:

python get_mails.py

ファイル構成

gmail-api-tutorial/
├── get_mails.py          # メール取得・添付ファイルダウンロード
├── get_token.py          # 認証トークン取得
├── send_attachment.py    # 添付ファイル付きメール送信
├── send_mail.py          # シンプルなメール送信
├── pyproject.toml        # プロジェクト設定・依存関係
├── README.md             # このファイル
├── .env                  # 環境変数(要作成)
└── data/
    ├── client_secret_*.json  # Google認証情報(要配置)
    ├── token.json           # 認証トークン(自動生成)
    └── attachment.png       # 送信用添付ファイル(要配置)

注意事項

  • 初回実行時は get_token.py を実行して認証を完了してください
  • Gmail API には使用制限があります
  • セキュリティのため、認証情報ファイルは適切に管理してください
  • .env ファイルと data/ フォルダ内のファイルは Git にコミットしないでください

必要な権限

このプロジェクトでは以下のスコープを使用します:

  • https://mail.google.com/ - Gmail の完全なアクセス権限

トラブルシューティング

認証エラーが発生する場合

  1. data/token.json を削除
  2. get_token.py を再実行して再認証

API 制限エラーが発生する場合

  • Gmail API の使用制限を確認し、時間を置いてから再試行してください

参考資料

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages