- 「535-5.7.8 Username and Password not accepted」エラーの原因
- アプリパスワードの発行手順(Googleアカウント設定)
- Laravel・WordPress・PHPMailerへの設定方法
- 2025年以降のGmail認証の変更点(OAuth2移行の動向)
- 解決しない場合の追加チェックポイント
エラーの原因:Googleの認証ポリシー変更
「535-5.7.8 Username and Password not accepted」というエラーは、Gmail SMTPでのパスワード認証が失敗しているときに表示されます。2022年以降、Googleはセキュリティ強化のため「安全性の低いアプリのアクセス」(基本認証)のサポートを段階的に廃止しており、現在はGoogleアカウントのパスワードを直接SMTP設定に使用することはできません。
エラーが出る主な理由:
- Googleアカウントの通常パスワードをSMTP認証に使っている
- アプリパスワードを設定しているが2段階認証が無効になっている
- アプリパスワードを使っているが入力時に余分なスペースが入っている
- SMTPポートまたはSSL/TLS設定が誤っている
解決策はシンプルです。Googleアカウントで「2段階認証」を有効にし、「アプリパスワード」を発行してSMTP設定に使うだけです。
Step 1: Googleアカウントで2段階認証を有効にする
アプリパスワードは「2段階認証が有効なアカウント」でのみ発行できます。すでに2段階認証を設定済みの場合はStep 2に進んでください。
- Google アカウントのセキュリティページにアクセス
- 「Googleへのログイン」セクションにある「2段階認証プロセス」をクリック
- 「使ってみる」をクリックして画面の指示に従い設定を完了
- SMS・認証アプリ・セキュリティキーのいずれかで認証手段を設定
2段階認証の設定後、すぐにStep 2でアプリパスワードを発行できます。
Step 2: アプリパスワードを発行する
- Googleアカウントのセキュリティページを開く
- 「Googleへのログイン」セクションの「アプリ パスワード」をクリック
- (項目が見当たらない場合: 2段階認証が有効になっているか再確認。検索欄に「アプリパスワード」と入力する方法もあります)
- 「アプリを選択」から「その他(名前を入力)」を選び、わかりやすい名前を入力(例: 「Laravel本番」「WordPressサイト名」)
- 「生成」をクリック
- 画面に表示される16文字のパスワードをコピーする
| SMTP設定項目 | 値 |
|---|---|
| SMTPサーバー | smtp.gmail.com |
| ポート(SSL/TLS) | 465 |
| ポート(STARTTLS) | 587 |
| ユーザー名 | Gmailアドレス(例: your@gmail.com) |
| パスワード | 発行したアプリパスワード(16文字) |
注意:アプリパスワードは発行時に1度しか表示されません。必ずコピーして安全な場所に保管してください。紛失した場合は新しいアプリパスワードを発行し直す必要があります。
Step 3: 各フレームワーク・ツールへの設定方法
Laravel(.env設定)
Laravelの場合、.envファイルに以下のように設定します:
MAIL_MAILER=smtp
MAIL_HOST=smtp.gmail.com
MAIL_PORT=587
MAIL_USERNAME=your@gmail.com
MAIL_PASSWORD=発行したアプリパスワード(16文字、スペースなし)
MAIL_ENCRYPTION=tls
MAIL_FROM_ADDRESS=your@gmail.com
MAIL_FROM_NAME="サービス名"
設定後、php artisan config:clearでキャッシュをクリアしてください。動作確認はphp artisan tinkerで以下を実行:
Mail::raw('テスト送信', function($m) { $m->to('test@example.com')->subject('テスト'); });
WordPress(WP Mail SMTP プラグイン)
- 「WP Mail SMTP」プラグインをインストール・有効化
- 設定 → WP Mail SMTP → 設定
- 「メーラー」で「その他のSMTP」を選択
- SMTPホスト:
smtp.gmail.com、ポート:587、暗号化:TLS - SMTPユーザー名: Gmailアドレス
- SMTPパスワード: アプリパスワード(16文字)
- 「設定を保存」後、「メールテスト」タブで動作確認
PHPMailer
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\SMTP;
$mail = new PHPMailer(true);
$mail->isSMTP();
$mail->Host = 'smtp.gmail.com';
$mail->SMTPAuth = true;
$mail->Username = 'your@gmail.com';
$mail->Password = 'アプリパスワード16文字';
$mail->SMTPSecure = PHPMailer::ENCRYPTION_STARTTLS;
$mail->Port = 587;
それでも解決しない場合のチェックポイント
アプリパスワードを設定してもエラーが続く場合、以下を順番に確認してください。
| 確認項目 | 対処方法 |
|---|---|
| パスワードにスペースが混入している | アプリパスワードは表示時にスペース区切りされるが、実際は16文字の連続した文字列。スペースを除いてコピーする |
| ポート番号が間違っている | SSL/TLSなら465、STARTTLSなら587。混在させない |
| 送信元アドレスとSMTPユーザー名が違う | MAIL_FROM_ADDRESSとMAIL_USERNAMEは同じGmailアドレスにする |
| Google Workspaceで使っている | Workspace管理者がSMTP認証を無効化している場合あり。管理コンソールで「SMTPリレー」設定を確認 |
| サーバー側のアウトバウンドポートが塞がれている | レンタルサーバーによっては25/465/587番ポートが制限されている。ホスティング会社に確認 |
2025年以降の認証動向:OAuth2への移行
Googleは長期的にはアプリパスワードよりもOAuth2認証を推奨しています。2025年3月にGoogle WorkspaceでSMTP基本認証がデフォルト無効化されたように、今後アプリパスワードのサポートが縮小される可能性もあります。
現時点では個人のGmailアカウントでアプリパスワードは引き続き利用できますが、業務用途では以下の選択肢も視野に入れることをおすすめします:
- OAuth2認証への移行:Google APIクライアントライブラリを使った認証(PHPMailer等でサポート済み)
- SMTPリレーサービスの利用:SendGrid・Amazon SESなど(送信制限なし・配信ログ管理が容易)
- Google Workspace SMTP中継:Workspace管理者がSMTP中継を有効化して使う方法
まとめ
「535-5.7.8 Username and Password not accepted」エラーの解決手順は以下の通りです:
- Googleアカウントで2段階認証を有効化
- アプリパスワードを発行(16文字、スペースなし)
- SMTPホスト:
smtp.gmail.com、ポート:587(STARTTLS)または465(SSL/TLS) - ユーザー名に完全なGmailアドレス、パスワードにアプリパスワードを設定
それでも解決しない場合は、パスワードへのスペース混入・ポート設定の誤り・サーバー側のポート制限を順番に確認してください。
この記事をシェア