このフォームはPHPMailerというPHPライブラリから、GmailのSMTPサーバーへ接続してメールを送ります。
送信元・受信先の違いから確認したい方は、先にはじめてのメール送信をご覧ください。このページでは、Googleアカウント側の準備を詳しく説明します。
通知をGmailで受け取り、ラベルで整理したい方は、アドバンスのGmailで受信・整理する設定をご覧ください。
用語を簡単に説明
- SMTP:Webサーバーからメールを送り出す仕組み
- PHPMailer:PHPからSMTPを使いやすくするプログラム
- 2段階認証:パスワード以外にスマートフォンなどでも本人確認する仕組み
- アプリパスワード:PHPなどからGmailへ接続するための専用パスワード
Googleアカウントへ普段ログインするときのパスワードは、config.php
に設定しないでください。
設定前の確認
- 送信に使うGoogleアカウントを決める
- 受信確認ができる状態にする
- Googleアカウントの復旧用電話番号・メールアドレスを確認する
- 共有アカウントの場合は、管理者に設定変更の許可を取る
個人のGmailとGoogle Workspaceでは、管理者設定によってアプリパスワードを利用できない場合があります。
手順1:2段階認証を有効にする
- Googleアカウント を開きます。
- 左側の「セキュリティ」を開きます。
- 「Googleにログインする方法」から「2段階認証プロセス」を選びます。
- 画面の案内に従い、スマートフォンなどを登録します。
- 設定完了後、いったんGoogleアカウント画面へ戻ります。
Google公式説明:2段階認証による保護
手順2:アプリパスワードを作成する
- Googleアカウントのセキュリティ設定を開きます。
- 「アプリ パスワード」を開きます。
- 再度ログインを求められた場合は本人確認します。
- アプリ名へ、管理しやすい名前を入力します。
例:
お問い合わせフォーム
- 作成された16文字のアプリパスワードを安全な場所へ一時的に控えます。
アプリパスワードは通常、作成時に一度しか表示されません。紛失した場合は、古いものを探すのではなく、新しく作成してください。
Google公式説明:アプリパスワードでログインする
「アプリ パスワード」が表示されない場合
次の可能性があります。
- 2段階認証がまだ有効になっていない
- 職場や学校のGoogle Workspaceで管理者が禁止している
- 2段階認証がセキュリティキーだけで設定されている
- 高度な保護機能プログラムを利用している
この場合は、勝手にセキュリティ設定を弱めず、Google Workspace管理者へ確認してください。
手順3:config.php を設定する
編集するファイル:
form/php/config/config.php
設定例:
次は既存設定の一部分です。config.php
全体をこのコードで置き換えず、対応する値だけを変更してください。
'mail' => [
'use_smtp' => true,
'smtp' => [
'host' => 'smtp.gmail.com',
'port' => 587,
'username' => 'sender@example.com',
'password' => 'ここにアプリパスワード',
'encryption' => 'tls',
],
'from' => [
'email' => 'sender@example.com',
'name' => 'サイト運営者名',
],
'to' => [
'email' => 'receiver@example.com',
'name' => 'お問い合わせ担当者',
],
],
各設定の意味
| 設定 | 意味 |
|---|---|
username |
Gmailへログインする完全なメールアドレス |
password |
Googleが発行したアプリパスワード |
from.email |
メールの送信元として表示するアドレス |
from.name |
受信画面に表示する送信者名 |
to.email |
お問い合わせを受け取る運営者アドレス |
to.name |
運営者側の表示名 |
基本的には、username と
from.email
を同じGmailアドレスにしてください。異なるアドレスを使うと、Gmail側で送信元が書き換えられたり、認証エラーになったりする場合があります。
このフォームは、問い合わせ者が入力したメールアドレスを返信先の
Reply-To
に設定します。そのため、管理者が届いたメールへ返信すると、問い合わせ者宛てになります。
Gmailの接続値
このフォームで使う値は次のとおりです。
SMTPサーバー: smtp.gmail.com
ポート番号: 587
暗号化方式: TLS / STARTTLS
認証: 必要
Google公式のSMTP案内:アプリや機器からメールを送信する
手順4:テスト送信する
本番公開前に、架空の内容で1件だけ送信します。
確認するメールは2通です。
to.emailに届く管理者向け通知- フォームへ入力したアドレスに届く自動返信
次も確認してください。
- 件名と日本語が文字化けしていない
- 返信ボタンを押したとき問い合わせ者が宛先になる
- 迷惑メールフォルダへ入っていない
- 確認画面に内部設定値が表示されない
- 送信完了画面が表示される
よくあるエラー
Username and Password not accepted
- 通常のGoogleパスワードを使っていないか確認する
- アプリパスワードを作り直す
usernameが完全なメールアドレスか確認する- Googleアカウントのパスワード変更後ではないか確認する
Googleアカウントの通常パスワードを変更すると、アプリパスワードが無効になる場合があります。その場合は新しいアプリパスワードを発行します。
Connection timed out / Could not connect
- 公開サーバーが外部SMTP接続を禁止していないか確認する
- 587番ポートが利用できるかサーバー会社へ確認する
smtp.gmail.comのつづりを確認する
管理者には届くが自動返信が届かない
- 入力したメールアドレスを確認する
- 迷惑メールフォルダを確認する
- Gmail側の送信上限や一時的な制限を確認する
詳しくは確認・送信のトラブルを参照してください。
認証情報を安全に保管する
- 通常のGoogleパスワードをPHPへ書く
- アプリパスワードを画面共有やチャットへ貼る
config.phpをGitHubなどの公開リポジトリへ登録する- 本物のパスワードを記載したバックアップを公開フォルダへ置く
漏えいの可能性がある場合は、そのアプリパスワードをGoogleアカウントから削除し、新しく発行してください。詳しくはセキュリティとバックアップを確認してください。
ここまでできたらOK 設定を保存したら、はじめてのメール送信の手順4から、自分のアドレスで送信と受信を確認しましょう。