gmail-cli: コマンドラインからのクロスプラットフォーム電子メール

役割: 開発者

テクノロジー: Python 3、Gmail SMTP、クロスプラットフォーム CLI

プラットフォーム: macOS、Linux、Windows

Gmail SMTP を使用してコマンド ラインから電子メールを送信できる、依存関係のない Python ツール。 1 つのコマンドでインストールし、一度構成すれば、スクリプト、自動化ワークフロー、または AI エージェントから電子メールを送信できます。

問題

コマンド ラインから電子メールを送信するのは従来、面倒な作業でした。

メール サーバーの構成に苦労することなく、自動化スクリプト、AI エージェント、CI/CD パイプラインからメールを送信する簡単な方法が必要でした。 Gmail の SMTP サーバーは優れた到達性を備えており、アプリ パスワードはメイン アカウントのパスワードを公開することなく安全な認証を提供します。

解決策

gmail-cli は、外部依存関係のない単一の Python ファイルで、Python 3 を備えたあらゆるシステムで動作します。信頼性の高い配信のために Gmail の SMTP サーバーを使用し、資格情報をホーム ディレクトリに安全に保存します。

一行インストール

macOS / Linux

curl -sSL https://colinknapp.com/tools/gmail-cli/install.sh | bash

Windows PowerShell

iwr -useb https://colinknapp.com/tools/gmail-cli/install.ps1 | iex

インストーラーはスクリプトを次の場所にダウンロードします。 ~/.local/bin (Unix) または %LOCALAPPDATA%\gmail-cli (Windows) それを PATH に追加します。

セットアップ: Gmail アプリのパスワード

Gmail では、SMTP アクセスにアプリ パスワードが必要です (2FA が有効になっていると、通常のパスワードは機能しません)。設定方法は次のとおりです。

  1. に行く myaccount.google.com/apppasswords
  2. 2 段階認証プロセスをまだ有効にしていない場合は有効にします
  3. 「メール」のアプリパスワードを生成する
  4. 走る gmail-cli configure Gmail アドレスとアプリのパスワードを入力します
gmail-cli configure
Gmail CLI Configuration
----------------------------------------

You'll need a Gmail App Password:
1. Go to https://myaccount.google.com/apppasswords
2. Enable 2-Step Verification if needed
3. Generate an App Password for 'Mail'

Gmail address: yourname@gmail.com
App Password (will be stored locally): xxxx xxxx xxxx xxxx

Configuration saved to /home/user/.config/gmail-cli/config.json

使用例

シンプルなメール

gmail-cli send recipient@example.com -s "Hello" -b "Hi there!"

添付ファイル付きメール

gmail-cli send recipient@example.com \
  -s "Weekly Report" \
  -b "Please find the report attached." \
  -a report.pdf \
  -a data.csv

標準入力からコンテンツをパイプする

cat logfile.txt | gmail-cli send admin@example.com -s "Server Logs"

テスト接続

gmail-cli test
Testing connection for yourname@gmail.com...
Success! Connection and authentication working.

現実世界の使用例: AI エージェントの電子メール

私はこのツールを、Cursor のような AI コーディング エージェントで使用するために特別に構築しました。 PDF を添付した電子メールを送信する必要がある場合、AI エージェントは電子メールを作成して直接送信できます。

gmail-cli send recipient@example.com \
  -s "Documents Attached" \
  -b "Hi,

Please find the requested documents attached.

Best regards,
Your Name" \
  -a document1.pdf \
  -a document2.pdf

これにより、エンドツーエンドの自動化が可能になります。AI は人間の介入なしにドキュメントを生成し、PDF を作成し、電子メールで送信できます。

技術的な実装

建築

セキュリティに関する考慮事項

クロスプラットフォームのサポート

このツールはプラットフォームの違いを自動的に処理します。

コマンドリファレンス

コマンド 説明
gmail-cli configure Gmail 認証情報を設定する (対話型)
gmail-cli configure --email x --password y 資格情報を非対話的に設定する
gmail-cli send TO -s SUBJ -b BODY メールを送信する
gmail-cli send TO -s SUBJ -a FILE 添付ファイルを付けて送信する
gmail-cli test SMTP接続をテストする
gmail-cli config 現在の構成を表示

自動化との統合

gmail-cli は以下とシームレスに連携します。

例: 日次バックアップレポート

#!/bin/bash
# backup-report.sh - Run daily via cron

BACKUP_LOG="/var/log/backup.log"
RECIPIENT="admin@example.com"

if [ -f "$BACKUP_LOG" ]; then
    cat "$BACKUP_LOG" | gmail-cli send "$RECIPIENT" \
        -s "Daily Backup Report - $(date +%Y-%m-%d)"
fi

既存のツールを使用しないのはなぜですか?

代替案 問題
sendmail/postfix ルートが必要、複雑な構成、配信可能性の問題
msmtp 外部依存関係、構成ファイルの構文
メールx/メール プラットフォーム固有、ローカル MTA が必要
Python smtplib を直接実行する 定型コード、CLI インターフェイスなし

gmail-cli は、Gmail インフラストラクチャの信頼性を備えた CLI ツールのシンプルさを提供し、Python が実行されるどこでも動作する依存関係のないパッケージにラップされています。

観察

  1. ワンライナーでインストールできます。curl | bash このパターンは物議を醸していますが、開発者ツールの負担を大幅に軽減します
  2. Gmail SMTP は信頼性があります: Google のサーバーは優れた配信性と稼働率を備えています
  3. アプリのパスワードは過小評価されています: メインの認証情報を公開することなく、限定されたアクセスを提供します
  4. クロスプラットフォームの問題: macOS、Linux、Windows 上で同様に動作するツールにより、ドキュメントとサポートの労力が節約されます
  5. AI エージェントには電子メールが必要です。 LLM を活用した自動化が進むにつれて、シンプルなプログラムによる電子メールの価値がますます高まっています

Get Started

gmail-cli をインストールし、端末からメールの送信を開始します。

# Install (macOS/Linux)
curl -sSL https://colinknapp.com/tools/gmail-cli/install.sh | bash

# Configure
gmail-cli configure

# Send your first email
gmail-cli send yourself@gmail.com -s "Test" -b "It works!"