Guide
Gmail SMTP設定 2026:ポート・TLS・認証
開発者向け Gmail SMTP設定の完全リファレンス:smtp.gmail.com の設定値、ポート 587 と 465 の構成、アプリパスワードの設定手順、OAuth 2.0 の要件、送信制限、よくあるエラーコード、そして設定不要の CLI という代替手段まで解説します。
Written by Qasim Muhammad Staff SRE
本ガイドで使用するコマンドリファレンス:SMTP なしで送信する nylas email send、OAuth 認証を行う nylas auth login、ヘッドレス環境で API キーを設定する nylas auth config、メッセージを検索する nylas email search。
Gmail の SMTP サーバー設定とは?
Gmail の送信メールサーバーは smtp.gmail.com です。STARTTLS 暗号化のポート 587 と、暗黙的 SSL/TLS のポート 465 で接続を受け付けます。どちらのポートも、アプリパスワードまたは OAuth 2.0 アクセストークンによる認証が必要です。標準の Gmail アカウントでは、ポート 25 での平文接続は利用できません。これらの設定値は Google が標準化して以来変わっていませんが、認証方法は 2022 年以降大幅に絞り込まれています。
| 設定項目 | 値 |
|---|---|
| SMTP サーバー | smtp.gmail.com |
| ポート(STARTTLS) | 587 |
| ポート(SSL/TLS) | 465 |
| 暗号化 | TLS 1.2 以上が必須 |
| 認証 | アプリパスワードまたは OAuth 2.0 |
| ユーザー名 | 完全な Gmail アドレス(you@gmail.com) |
| 1 日の上限(個人) | 500 通 |
| 1 日の上限(Workspace) | 2,000 通 |
Google は、より高いスループットを必要とする Workspace アカウント向けに smtp-relay.gmail.com という SMTP リレーも運用しています。このリレーはユーザーあたり 1 日最大 10,000 受信者をサポートし、ユーザー認証情報の代わりに IP ベースの認証を利用できます。 Google の Workspace ドキュメントによると、このリレーは既知の IP 範囲から送信するプリンター、スキャナー、社内アプリ向けに用意されています。
最も一般的な構成は、ポート 587 と STARTTLS の組み合わせです。以下は、多くの開発者が sendmail の代替として使う軽量 SMTP クライアント msmtp での設定例です。設定ファイルは ~/.msmtprc で、書くのにかかる時間は 2 分ほどです。
# ~/.msmtprc — Gmail SMTP via msmtp
account gmail
host smtp.gmail.com
port 587
tls on
tls_starttls on
auth on
user you@gmail.com
password abcd-efgh-ijkl-mnop
from you@gmail.com
logfile ~/.msmtp.log
account default : gmailSMTP 用の Gmail アプリパスワードを設定するには?
Gmail のアプリパスワードは、SMTP 接続時にアカウントのパスワードの代わりに使う 16 文字のコードです。2 段階認証を有効にすると Google が生成してくれます。アプリパスワードは現在、個人 Gmail アカウントで唯一のパスワードベースの SMTP 認証方法です。Google は 2024 年 9 月 30 日に「安全性の低いアプリ」のアクセス無効化を開始し、同年 10 月にロールアウトを一時停止したのち、2025 年 5 月 1 日に完全に終了しました — これにより、通常の Gmail パスワードで SMTP 接続するという従来の選択肢はなくなりました。
アプリパスワードの作成にかかる時間は 3 分ほどです。先に 2 段階認証を有効にしておく必要があり、これは 2021 年以降すべての新規アカウントで Google が必須としています。手順は次のとおりです:
- myaccount.google.com/security にアクセスし、2 段階認証が有効になっていることを確認します。
- myaccount.google.com/apppasswords を開きます。
- アプリの名前(例:"SMTP script")を入力し、作成をクリックします。
- 16 文字のパスワードをコピーします。表示されるのは一度だけで、後から再表示はできません。
- このパスワードをクライアントの SMTP パスワードとして使用します。ユーザー名は完全なメールアドレスです。
Google のアプリパスワードのドキュメントによると、アプリパスワードは「推奨されず、ほとんどの場合は不要」とされています。Google が望ましいとするのは OAuth 2.0 でのサインインです。また、Google アカウントのパスワードを変更するとアプリパスワードは自動的に失効するため、それを使った SMTP 連携は新しいコードを生成するまで動かなくなります。
アプリパスワードは、SMTP プロトコルのテストツール swaks で検証できます。Gmail の SMTP サーバー経由でメッセージを 1 通送信し、SMTP ハンドシェイクの各ステップを表示するため、認証エラーの箇所を簡単に特定できます。テストにかかるのは 5 秒ほどです。
# Test Gmail SMTP auth with swaks
swaks --to recipient@example.com \
--from you@gmail.com \
--server smtp.gmail.com \
--port 587 \
--tls \
--auth LOGIN \
--auth-user you@gmail.com \
--auth-password "abcd-efgh-ijkl-mnop"
# Expected output (successful):
# -> AUTH LOGIN
# <- 235 2.7.0 Accepted
# -> MAIL FROM:<you@gmail.com>
# <- 250 2.1.0 OKGmail SMTP の送信制限は?
個人の Gmail アカウントは、24 時間のローリングウィンドウで 500 通まで送信できます。Google Workspace アカウントは 1 日 2,000 通です。上限を超えると Gmail は一時的なエラーを返し、送信を最大 24 時間停止します。停止中も受信は通常どおり機能します。試用版の Workspace アカウントは、累計支払額が 100 米ドルに達するまで 1 日 500 通に制限されます。
| 制限 | 個人 Gmail | Google Workspace |
|---|---|---|
| 1 日あたりのメッセージ数 | 500 | 2,000 |
| 1 通あたりの受信者数 | 500 | 2,000(外部は 500) |
| 1 日あたりの受信者数 | 500 | 10,000 |
| 1 日あたりの外部ユニーク受信者数 | 500 | 3,000 |
| 1 日あたりの差し込みメール | N/A | 1,500 |
| SMTP の 1 通あたり受信者数 | 100 | 100 |
| 添付ファイルのサイズ上限 | 25 MB | 25 MB |
SMTP 接続での 1 通あたり 100 受信者という上限は、Gmail のウェブ UI で許可される 500 より低い値です。 Google の Workspace 送信制限ドキュメントによると、SMTP・POP・IMAP のユーザーはアカウントの種類にかかわらず 1 通あたり 100 受信者に制限されます。スクリプトが 100 件を超えるアドレスに送信する場合は、受信者をバッチに分割してください。
Gmail の受信者に 1 日 5,000 通超を送る一括送信者には、送信ドメインでの SPF・DKIM・DMARC 認証と、ワンクリック登録解除ヘッダーが Google により義務付けられています。この要件は 2024 年 2 月に発効しました。クォータを超過した送信者には SMTP エラーコード 4.7.28 が返されます — これは一時的な拒否で、24 時間のウィンドウがリセットされると解消します。
Gmail SMTP の認証が失敗するのはなぜ?
Gmail SMTP の認証が失敗する主な原因は 4 つあります:アプリパスワードの未設定、認証情報の誤り、2 段階認証の無効化、同時接続数の超過です。Google はそれぞれのケースで固有の SMTP エラーコードを返します。見方さえ分かれば、エラーメッセージは何が起きたかを正確に教えてくれます。最もよく遭遇するコードを以下にまとめます。
| エラーコード | メッセージ | 原因 | 対処 |
|---|---|---|---|
534-5.7.9 | "Application-specific password required" | 2 段階認証は有効だがアプリパスワードがない | myaccount.google.com/apppasswords でアプリパスワードを生成する |
535-5.7.8 | "Username and Password not accepted" | パスワードの誤り、アプリパスワードの失効、またはアカウントパスワードの変更 | 新しいアプリパスワードを生成する |
421-4.7.0 | "Too many concurrent SMTP connections" | 1 アカウントから 10 を超える同時 SMTP セッション | 接続プールのサイズを減らすか、指数バックオフを追加する |
550-5.4.5 | "Daily sending quota exceeded" | 1 日 500 通(個人)または 2,000 通(Workspace)の上限に到達 | ローリングウィンドウのリセットを最大 24 時間待つ |
530-5.7.0 | "Must issue a STARTTLS command first" | STARTTLS なしでポート 587 に接続している | クライアントで STARTTLS を有効にするか、暗黙的 SSL のポート 465 に切り替える |
2026 年現在、最も多いエラーは 534-5.7.9 です。開発者が古いチュートリアルから、通常の Gmail パスワードを使う SMTP の例をコピーしてしまうためです。これらの例は Google が「安全性の低いアプリ」のアクセスを許可していた間は動作していましたが、そのアクセスは 2024 年 9 月 30 日に段階的な無効化が始まり、2025 年 5 月 1 日に完全に終了しました。現在、Gmail へのすべての SMTP 接続にはアプリパスワードまたは OAuth 2.0 トークンが必要です。
SMTP エラーを対話的に診断するには、openssl で生の TLS 接続を開きます。Google のサーバーが返す SMTP バナーとエラーレスポンスをそのまま確認できるため、高レベルのクライアントが元のエラーコードを隠してしまう場合に便利です。このコマンドは暗黙的 TLS でポート 465 に接続します。
# Open a raw TLS connection to Gmail SMTP
openssl s_client -connect smtp.gmail.com:465 -quiet
# You'll see the SMTP banner:
# 220 smtp.gmail.com ESMTP ... - gsmtp
# Authenticate manually:
EHLO localhost
AUTH LOGIN
# Enter base64-encoded username and password
# Google returns 235 on success or 535-5.7.8 on failureGmail SMTP は廃止されるのか?
Gmail SMTP 自体が廃止される予定はありません。smtp.gmail.com サーバーは 2026 年 5 月時点でもポート 587 と 465 での接続を受け付けています。変わったのは認証の方法です。Google は過去 4 年間で簡易な認証方法を段階的に廃止し、残されたのはアプリパスワードと OAuth 2.0 だけです。方向性は明確で、OAuth が本来想定された道筋です。
Google がこれまでに停止してきたものの時系列は次のとおりです:
| 日付 | 出来事 |
|---|---|
| 2022 年 5 月 30 日 | 新規アプリによる「安全性の低いアプリ」アクセスの有効化を Google が停止 |
| 2024 年 6 月 15 日 | Workspace 管理コンソールから「安全性の低いアプリ」の切り替えオプションを削除 |
| 2024 年 9 月 30 日 | Google Workspace アカウントでの「安全性の低いアプリ」アクセス終了を発表。ロールアウトは 2024 年 10 月に一時停止 |
| 2025 年 5 月 1 日 | 最終施行:すべての Workspace アカウントで「安全性の低いアプリ」のサポートを終了 |
アプリパスワードは今も利用できますが、Google 自身のドキュメントが「推奨されない」としています。リスクもあります:16 文字のコードを知っている人は誰でもアカウントへの完全な SMTP アクセスを持ち、アプリパスワードを特定の操作だけに限定することはできません。OAuth 2.0 なら必要なスコープだけをリクエストでき(例:SMTP 用の https://mail.google.com/)、トークンは 3,600 秒で期限切れになります。新しく構築するなら OAuth を使ってください。
Workspace 管理者向けには、Google の 2023 年 9 月のブログ記事 が移行パスを明確にしています:メールアクセスが必要なアプリは OAuth または Gmail API を使うべきです。OAuth に対応できないプリンターやスキャナーは、代わりに IP ベース認証の smtp-relay.gmail.com リレーを使います。
SMTP を設定せずにメールを送信するには?
Nylas CLI は、SMTP 設定もアプリパスワードも OAuth トークン管理もなしで、Nylas API 経由でメールを送信します。1 コマンドでブラウザベースの OAuth 認証が完了し、以降の送信では 3,600 秒ごとに自動更新される保存済み認証情報が使われます。インストールから最初の送信までのセットアップ全体にかかる時間は 2 分未満です。Gmail、Outlook、Exchange、Yahoo、iCloud、IMAP プロバイダーに対応しています。
Homebrew で CLI をインストールし、ガイド付きセットアップを実行します。nylas init コマンドが、アカウントの作成、API キーの設定、メールボックスの接続まで案内してくれます。すでに Nylas API キーがある場合は、nylas auth config に直接進めます。その他のインストール方法(シェルスクリプト、PowerShell、Go)は スタートガイドをご覧ください。
# Install Nylas CLI
brew install nylas/nylas-cli/nylas
# Guided setup (creates account, API key, connects mailbox)
nylas init
# Or, if you already have an API key
nylas auth config --api-key nyl_abc123
nylas auth login
# Send an email — no SMTP, no app password, no port config
nylas email send \
--to recipient@example.com \
--subject "Sent without SMTP" \
--body "No smtp.gmail.com, no port 587, no app password."
# Send non-interactively (for scripts and cron jobs)
nylas email send \
--to ops@company.com \
--subject "Deploy complete" \
--body "Build #1847 deployed at $(date)" \
--yesSMTP と API ベースの送信の違いは、無人で動くスクリプトでは特に大きくなります。SMTP では、認証情報の管理(アカウントパスワードを変更すると壊れるアプリパスワード)、接続プーリング(Gmail の同時 SMTP セッションは 10 まで)、TLS ネゴシエーションを自分で扱うことになります。CLI なら 1 コマンドがそのすべてを処理します。ツールは OAuth トークンをシステムキーリングに保存し、期限切れ前に更新します。
現在 smtplib と Gmail の SMTP 設定を使っている Python スクリプトでは、SMTP のブロックをサブプロセス呼び出しに置き換えられます。これでコードから SMTP 設定とアプリパスワードを完全に排除できます。完全な移行パターンは SMTP なしで Python からメールを送信のガイドで解説しています。
# Before: 15 lines of smtplib + Gmail SMTP config
import smtplib
from email.mime.text import MIMEText
msg = MIMEText("Hello from Python")
msg["Subject"] = "Test"
msg["From"] = "you@gmail.com"
msg["To"] = "recipient@example.com"
with smtplib.SMTP("smtp.gmail.com", 587) as server:
server.starttls()
server.login("you@gmail.com", "abcd-efgh-ijkl-mnop") # app password
server.send_message(msg)
# After: 1 subprocess call, no SMTP, no password in code
import subprocess
subprocess.run([
"nylas", "email", "send",
"--to", "recipient@example.com",
"--subject", "Test",
"--body", "Hello from Python",
"--yes"
], check=True)SMTP がどうしても必要なユースケース(メールサーバーのテスト、プリンター連携、サブプロセスを呼べないレガシーアプリ)では、このページ冒頭の設定値がまさに必要な情報です。それ以外のすべてでは、API 経由の送信が可動部品を取り除きます:覚えるポートも、ネゴシエートする TLS も、ローテーションするアプリパスワードもありません。
次のステップ
- Gmail アプリパスワード:設定手順と注意点 — 作成するか、OAuth でスキップするか
- メール API と SMTP の比較 — SMTP で足りる場合と足りない場合
- 完全なコマンドリファレンス — Nylas CLI のすべてのフラグ、サブコマンド、使用例
- ターミナルからメールを送信 — Gmail、Outlook、Exchange、Yahoo、iCloud、IMAP の詳細な送信ワークフロー
- SMTP なしで Python からメールを送信 —
smtplibをサブプロセス呼び出し 1 回に置き換える - Python smtplib ラッパー:作るべきか省くべきか — SMTP を使い続けるスクリプトの接続・TLS・リトライパターン
- スタートガイド — macOS、Linux、Windows に 2 分以内でインストール
- SPF・DKIM・DMARC:メール到達性をデバッグ — コマンドラインから認証ヘッダーとバウンス処理を診断
- メール CLI ツールの比較 — Nylas CLI、Himalaya、msmtp、NeoMutt ほか 3 ツールを比較