本文へ移動
FreelanceForm 購入者向け設置ガイド

メールを送れるようにする

Gmailを送信元・受信先に設定する

2段階認証・アプリパスワード・SMTP設定をひとつずつ。

このページの目次

このフォームは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段階認証を有効にする

  1. Googleアカウント を開きます。
  2. 左側の「セキュリティ」を開きます。
  3. 「Googleにログインする方法」から「2段階認証プロセス」を選びます。
  4. 画面の案内に従い、スマートフォンなどを登録します。
  5. 設定完了後、いったんGoogleアカウント画面へ戻ります。

Google公式説明:2段階認証による保護

手順2:アプリパスワードを作成する

  1. Googleアカウントのセキュリティ設定を開きます。
  2. 「アプリ パスワード」を開きます。
  3. 再度ログインを求められた場合は本人確認します。
  4. アプリ名へ、管理しやすい名前を入力します。

例:

TEXT
お問い合わせフォーム
  1. 作成された16文字のアプリパスワードを安全な場所へ一時的に控えます。

アプリパスワードは通常、作成時に一度しか表示されません。紛失した場合は、古いものを探すのではなく、新しく作成してください。

Google公式説明:アプリパスワードでログインする

「アプリ パスワード」が表示されない場合

次の可能性があります。

  • 2段階認証がまだ有効になっていない
  • 職場や学校のGoogle Workspaceで管理者が禁止している
  • 2段階認証がセキュリティキーだけで設定されている
  • 高度な保護機能プログラムを利用している

この場合は、勝手にセキュリティ設定を弱めず、Google Workspace管理者へ確認してください。

手順3:config.php を設定する

編集するファイル:

TEXT
form/php/config/config.php

設定例:

次は既存設定の一部分です。config.php 全体をこのコードで置き換えず、対応する値だけを変更してください。

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の接続値

このフォームで使う値は次のとおりです。

TEXT
SMTPサーバー: smtp.gmail.com
ポート番号:   587
暗号化方式:   TLS / STARTTLS
認証:         必要

Google公式のSMTP案内:アプリや機器からメールを送信する

手順4:テスト送信する

本番公開前に、架空の内容で1件だけ送信します。

確認するメールは2通です。

  1. to.email に届く管理者向け通知
  2. フォームへ入力したアドレスに届く自動返信

次も確認してください。

  • 件名と日本語が文字化けしていない
  • 返信ボタンを押したとき問い合わせ者が宛先になる
  • 迷惑メールフォルダへ入っていない
  • 確認画面に内部設定値が表示されない
  • 送信完了画面が表示される

よくあるエラー

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から、自分のアドレスで送信と受信を確認しましょう。