Webフォームから問い合わせがあったはずなのに、
管理者への通知メールが届いていない
お客様から『返信がない』とお叱りを受けてしまった
もし、あなたのサイトで最近上記のような現象が起きているなら、それはサーバーの不具合ではなく、2024年6月から本格化されたGoogle(Gmail)のセキュリティ強化が原因である可能性が極めて高いです。
本記事では、このメール未達問題の技術的な原因と、弊社サービス「sHub」でも採用している、セキュリティと利便性を両立させる解決策(SMTP設定とコード解説)について詳しく解説します。

メールが届かなくなった「2024年6月問題」とは?
Googleは以前よりメール送信者のガイドラインを更新してきましたが、2024年6月以降、その要件を満たさないメール(特になりすまし判定されたメール)に対するブロックを大幅に強化しました。
これまで多くのWebフォームでは、管理者への通知メールの「送信元(from)」を「問い合わせ者のメールアドレス」や「WordPressのメールに設定するケースが多く見られました。これは「返信ボタンを押すだけでお客様に返信できる」という利便性があったためです。
しかし、これは「自社サーバーから、お客様(他社ドメイン)になりすましてメールを送っている」という挙動になり、現在のセキュリティ基準では完全にアウトとなります。
つまり、WordPressのWebフォームは「WordPressやサーバPHPの標準メール機能(mail関数)」を使ってメールを送るのが一般的でしたが、これは、メールサーバーへのログイン(認証)を経由せず、Webサイトが動いているサーバープログラムが直接メールを送り出す仕組みです。 Webフォームを設置したWebサイトから手軽にメールを送れる反面、「どこの誰が送ったか」という証明(認証)が弱く、送信元メールアドレスを自由に書き換えられるため、仕組み上は「なりすましメール」と同じ挙動をしていました。
2024年6月まではこれで問題なくWebフォームからの問い合わせ内容がお問合せした方と管理者にメールで届いていましたが、セキュリティが厳格化された現在では、この「認証のないメール」は不正なメールとしてブロックされるようになったのです。
「sHub」が選ばれる理由
当初よりspf・dkim・DMARCに対応
弊社が提供するWebサービス「sHub」をご利用のクライアント様では、2023年秋にGoogleからアナウンスがあった時点で対応準備をしています。つまり、sHubではドメインセキュリティが強化された当初より、以下の「送信ドメイン認証」の3点セットを標準設定としているからです。
SPF(IPアドレスの許可)/DKIM(電子署名による改ざん検知)/DMARC(認証失敗時のポリシー宣言:現在は「quarantine/隔離する」設定にしています)
WordPressを使ってお問合せWebフォームを運用、2024年6月からのセキュリティ強化の影響で、問い合わせいただいた方へのメール、管理者宛のメール、これらが不安定なケースが発生しています。それで、昨今慌てて対応するケースが多く、やみくもにフラグインとかで設定されているようです。sHubは「セキュリティ重視」をコンセプトにしており、これらの設定は当たり前のものとして改善しています。
解決策
SMTP送信への切り替えと
「Reply-To」の活用
では、どうすれば「届くメール」になるのか。正解は以下の構成です。
送信元(From): 自社ドメインのアドレスに固定する(なりすまし回避)
返信先(Reply-To): 問い合わせ者のアドレスを設定する(運用利便性確保)
送信方式: PHPのmail関数ではなく→ 認証を通したSMTP送信を行う
この構成を実現するために、WordPressの functions.php と wp-config.php を活用したカスタマイズ方法をご紹介します。
技術解説
設定コードの実例
弊社で推奨している、セキュアなSMTP送信を行うためのコード記述例です。
1)wp-config.php(設定情報) サーバーごとの機密情報(パスワードやポート番号)はこちらに集約します。
// メールSMTP情報設定
define('SMTP_HOST', 'smtp.example.jp'); // 貴社のSMTPサーバー
define('SMTP_PORT', 465); // ポート番号(例:TLS使用時)
define('SMTP_USER', 'post@example.com'); // 送信アカウント
define('SMTP_PASS', 'examplepasswords'); // パスワード
define('SMTP_SECURE', 'ssl'); // 暗号化方式
define('SMTP_FROM', 'post@example.com'); // 送信元アドレス
2) functions.php(送信ロジック) wp-config.php の情報を読み込み、メール送信プロセスをSMTP経由に切り替えます。
// SMTP経由の送信設定
function ag_send_mail_smtp($phpmailer)
{
// SMTP有効設定
$phpmailer->isSMTP();
// wp-config.phpからSMTP情報を取得
$phpmailer->Host = defined('SMTP_HOST') ? SMTP_HOST : '';
$phpmailer->SMTPAuth = true;
// ポート番号の優先順位判定
$phpmailer->Port = defined('SMTP_PORT') ? SMTP_PORT : 465;
$phpmailer->Username = defined('SMTP_USER') ? SMTP_USER : '';
$phpmailer->Password = defined('SMTP_PASS') ? SMTP_PASS : '';
$phpmailer->SMTPSecure = defined('SMTP_SECURE') ? SMTP_SECURE : 'ssl';
// 送信者情報
$phpmailer->From = defined('SMTP_FROM') ? SMTP_FROM : 'post@example.jp';
// デバッグを無効化
$phpmailer->SMTPDebug = 0;
}
add_action("phpmailer_init", "ag_send_mail_smtp");
