Ultimate Memberで承認メールが送れなかった問題

WordPressで会員サイトを構築していく中で、大きな壁にぶつかることがありました。「Ultimate Member」プラグインでユーザー登録システムを実装したものの、なぜか承認メールがユーザーに届かないという問題です。何度設定を確認しても解決せず、頭を抱える日々が続きました。今回は、この問題をどのように解決したかを共有します。特に無料で使いやすかったWP Mail SMTPプラグインの「Other SMTP」設定を中心にお話しします。

承認メールが送れなくて困った

サイトの会員登録フローを作り、テスト登録を実施したとき、待てど暮らせど承認メールが届かないという状況に直面しました。Ultimate Memberの設定画面を確認すると、いくつかのメール通知に赤い×マークがついています。どうやら承認メールがきちんと送信できていないようでした。

調査を進めると、WordPress自体のメール送信機能に問題があることが判明しました。実はこれ、多くの人が経験している一般的な問題だったのです。

「なぜメールが送れないのだろう?」と管理画面をよく見ると、「SMTPでのメール配信を強くお勧めします」というメッセージが目に入ります。そうか、標準の送信方法ではなく、別の方法を使う必要があるのかと気づく瞬間でした。

これは、宛名や切手の貼り方が不完全な手紙が郵便局に受け付けてもらえないような状況に似ています。メールも同じで、きちんとした「認証」がないと届かないのです。

SMTP設定で問題を解決しようと決めた理由

「SMTP」という言葉を初めて見たとき、詳しく知らない人も多いのではないでしょうか。調査によると、SMTP(Simple Mail Transfer Protocol)とはインターネット上でメールをやり取りするための標準的な通信方法だということがわかりました。

これを理解するには、WordPressの標準メール機能を「自分でポストに投函する」方法、SMTP設定は「信頼できる郵便局のサービスを使って配達証明付きで送る」方法と考えるとわかりやすいでしょう。確かにこの後者なら届く確率が上がりそうです。

プラグインを複数調査した結果、評価の高い「WP Mail SMTP」というプラグインを発見しました。300万以上のサイトで使われているとのことで、信頼性も高そうです。しかも無料版でも基本機能が使えるという点が魅力的でした。

WP Mail SMTPプラグインの選択肢で迷った

WP Mail SMTPをインストールしてみると、いくつものメーラー設定オプションが表示され、最初は戸惑いました。SendLayer、SMTP.com、Gmail、Brevoなど、様々な選択肢があります。

「どれを選べばよいのだろう?」

無料でシンプルに設定したい場合、どのオプションが適しているか調査する必要がありました。検討の結果、「Other SMTP」というオプションが、最も汎用的で無料で使えることがわかりました。ただし、他のサービスに比べると信頼性は若干低いという注意書きも確認できました。

「Other SMTP」を選んだ理由と他のオプションとの比較

様々なオプションの説明を読み比べていくと、大きく分けて「APIを使うもの」と「直接SMTPサーバーを設定するもの」の2つがあることがわかりました。

「Other SMTP」を選択した理由:

  • 追加の外部サービスに登録する必要がない
  • 既存のメールアカウントがそのまま使える
  • 設定が比較的シンプル
  • 完全に無料で使える

他のオプションを検討する過程で見えてきた特徴:

  • Gmailは無料で使えますが、送信制限があり、Googleアカウントへの連携設定が必要
  • SendLayerは評判が良いですが、無料トライアル後は有料になる
  • Brevo(旧Sendinblue)は1日300通の無料枠がありますが、別途登録が必要

まずは「Other SMTP」で試してみて、もし問題があれば他のサービスを検討するという方針が適切だと判断しました。「Other SMTP」であれば、自分のメールサーバー情報(例:Gmailなら「smtp.gmail.com」など)を直接入力するだけで使えるという手軽さがあります。

実際に「Other SMTP」を設定した手順

決断ができたら、次は実際の設定です。実体験に基づいた設定手順を共有します。

1. プラグインのインストールと最初の設定

まず、WordPressの管理画面から「プラグイン」→「新規追加」で「WP Mail SMTP」を検索しました。「WP Mail SMTP by WPForms」というプラグインを見つけてインストール。

有効化すると、すぐにセットアップウィザードが立ち上がります。最初の画面では送信者情報を設定します。サイト名と管理者メールアドレスを入力しました。

2. メーラー選択

次の画面でメーラーを選ぶ必要があります。様々な選択肢の中から「Other SMTP」を選択し、「Save and Continue」をクリック。

3. SMTP情報の設定

ここが最も重要な部分です。SMTP設定情報を入力する画面で適切な情報を入力する必要がありました。

Gmailを使用する場合、次のように入力します:

  • SMTP Host:smtp.gmail.com
  • Encryption:「TLS」を選択
  • SMTP Port:587
  • Authentication:「On」を選択
  • SMTP Username:Gmailアドレス
  • SMTP Password:Gmailのパスワード(※この部分には注意が必要)

注意点: Gmailの場合、通常のパスワードではなく「アプリパスワード」という特別なパスワードが必要でした。これはGoogleアカウントの2段階認証を有効にしてから発行できます。この点は最初は分からず、少し時間がかかりました。

4. テストメール送信の確認

すべての設定を入力した後、テストメールを送信して確認します。「Send a Test Email」ボタンをクリックして、メールアドレスを入力しました。

「Send Email」をクリックした後、数秒の緊張の時間が過ぎ…「Test email was sent successfully!」のメッセージが表示されました。実際にメールボックスを確認すると、テストメールが届いていたので設定成功と確認できました。

5. Ultimate Memberの設定確認

最後に、Ultimate Memberプラグインの設定を確認しました。「Ultimate Member」→「Settings」→「Emails」で、各種メール通知が有効になっているか確認。

特に「アカウント承認待ちです」の項目を確認すると、以前は赤い×マークがついていましたが、設定後は緑のチェックマークに変わっていました。

つまずきやすいポイントと解決方法

設定の過程ではいくつかの壁にぶつかることがあります。実際に経験した問題とその解決方法を共有します。

ポート番号と暗号化方式の混乱

特に注意が必要なのは、SMTP接続のポート番号と暗号化方式の組み合わせです。TLSを使う場合は587、SSLを使う場合は465を選択するのが一般的ですが、この組み合わせを間違えると接続エラーが発生します。

実際に経験した例では、ロリポップのSMTPサーバー(smtp.lolipop.jp)でポート465を使用する際に、暗号化方式をTLSと設定したところ以下のようなエラーが表示されました:

SMTP Error: Could not connect to SMTP host.
Host: smtp.lolipop.jp
Port: 465
SMTPSecure: tlsCode language: CSS (css)

この場合、暗号化方式をSSLに変更することで問題が解決しました。このように、サーバーごとに正しい組み合わせは異なる場合があるため、エラーが発生した際はこの点を確認することが重要です。

基本的には以下の組み合わせを覚えておくと良いでしょう:

ポート587 → TLS暗号化

ポート465 → SSL暗号化

送信者メールアドレスの制限

もう一つの注意点は、「Other SMTP」では送信者のメールアドレス(From Email)とSMTPユーザー名のメールアドレスを同じにする必要があるということです。サイト用の連絡先メールアドレスと別のGmailアカウントを使おうとすると、エラーの原因になります。

Gmailのアプリパスワード問題

通常のGmailパスワードを入力しても、テストメールが送信できないことがあります。エラーメッセージを見ると、「認証に失敗しました」と表示されます。

調査によると、Googleは2022年頃からセキュリティ強化のため、アプリからのログインに「アプリパスワード」という特別なパスワードを要求するようになったとのこと。アプリパスワードを発行するには:

  1. Googleアカウントで2段階認証を有効にする
  2. セキュリティ設定から「アプリパスワード」を発行する
  3. 発行されたパスワードをSMTPパスワード欄に入力する

これで問題が解決しました。

Gmailの認証方法の変化

Googleは近年、セキュリティ強化のために従来の「BASIC認証」(ユーザー名とパスワードのみ)を制限し、OAuth認証(より安全な認証プロトコル)を推奨するようになりました。

これがアプリパスワードが必要になった理由の一つです。つまり:

  1. 以前は通常のパスワードでSMTP接続ができた(BASIC認証)
  2. 現在はセキュリティ強化のため、2段階認証とアプリパスワードの使用が必要

WP Mail SMTPの「Other SMTP」設定の限界

「Other SMTP」設定では基本的にBASIC認証方式を使用します。Gmailなどの現代的なメールサービスでは、この方式での接続が制限されているため、アプリパスワードという特別な仕組みを使う必要があります。

一方、WP Mail SMTPの「Gmail」設定オプションではOAuth認証を使用するため、より安全で信頼性の高い接続ができます。これは「Other SMTP」より設定は複雑ですが、長期的には安定します。

最終的な結果と考察

設定が完了した後、テスト用のアカウントを作成して登録フローを確認してみました。「登録」ボタンをクリックした後、数分経過してテストアカウントのメールボックスを確認すると、ちゃんと承認メールが届いていました。

数日間悩んでいた問題がついに解決し、大きな進展を感じる瞬間でした。

この経験から得られた教訓:

  1. WordPressの標準メール機能はあまり信頼性が高くない
  2. SMTPを使うことで確実にメールを送れるようになる
  3. 無料でも「WP Mail SMTP」と「Other SMTP」の組み合わせで十分機能する
  4. Gmailを使う場合は「アプリパスワード」が必要

設定は最初は技術的に難しく感じるかもしれませんが、一度設定してしまえば安定して動作します。同様の問題で悩んでいる方は、ぜひ試してみる価値があるでしょう。

なお、より安定したメール送信が必要な場合は、SendLayerやBrevoなどの専用サービスの検討も選択肢の一つです。小規模サイトなら「Other SMTP」+Gmailで十分ですが、サイトの規模や重要性によって最適な選択肢は変わってくるかもしれません。