技術解説 · 出典付きの回答
WP Mail SMTPとは?WordPressのメール送信の仕組み
WP Mail SMTPは、標準のPHPのmail()関数を専用のSMTPリレーに置き換えるWordPressプラグインです。ローカルのウェブサーバーではなく本格的なメールサーバーを経由してメールをルーティングすることで、トランザクションメールが認証され、確実に配信されるようにします。
基本的な定義
WP Mail SMTPは、wp_mail()関数の処理を横取りするWordPressの設定レイヤーです。設定されていなかったりホスティング事業者にブロックされていたりすることの多い、サーバーのローカルのメールエージェントに頼る代わりに、外部のSMTPサーバーやAPIに接続してメッセージを送信します。これにより、メール配信の責任がウェブホストから専門のメール配信サービスへ移ります。
仕組み
このプラグインは、簡易メール転送プロトコル(SMTP)またはREST APIを使ってリモートのサーバーとの接続を確立することで動作します。APIキーやユーザー名とパスワードの組み合わせなどの認証情報を使って、認証処理を行います。認証が済むと、プラグインはメッセージのペイロードをリレーに送信し、リレーがRFC 5321の標準に従って受信者のメールサーバーへの最終的な配信を処理します。
送信者にとっての重要性
ローカルのウェブサーバーには、現在のメールフィルターが求めるレピュテーションや認証レコードがないため、専用のリレーを使うことが非常に重要です。リレーを使えば、送信者はSPF、DKIM、DMARCのレコードを導入できます。これにより、厳格な認証チェックを行う受信サーバーによってメールが迷惑メールと判定されたり拒否されたりする可能性が下がります。
運用上の注意
よくある間違いは、大量の送信に個人のGmailアカウントを使うことで、アカウントの停止につながることがあります。開発者は代わりにトランザクションメールのサービスを使うべきです。リレーが正しく設定されていることを確かめるには、SendHQやその無料ツール(https://sendhq.cc/tools)を使って、DNSレコードが選択したSMTPプロバイダーと整合しているかを確認できます。
実装例
典型的な設定では、プラグインをインストールし、Amazon SESなどのメーラーを選択します。ユーザーは、SESのSMTPエンドポイント、STARTTLS用のポート587、関連するIAMの認証情報を入力します。保存すると、パスワードのリセットや注文確認など、WordPressのすべての通知がローカルのサーバーではなくAWSのインフラを経由してルーティングされます。
よく寄せられる質問
標準のPHPのmail関数が信頼できないのはなぜですか?
PHPのmail()には認証がなく、検証されていないサーバーのIPから送信されることが多いため、受信サーバーがそのメールを迷惑メールと判定したり、完全に拒否したりします。
WP Mail SMTPでメールの到達率は向上しますか?
認証済みのリレーやAPIサービスを使えるようになるため、送信者はDKIMとSPFでメールを認証でき、信頼性を高められます。
このプラグインではどのSMTPサーバーでも使えますか?
はい、標準的なSMTPプロトコルに従うサーバー、またはメッセージの送信用にサポートされたAPIを提供するサーバーであれば、どれでも使えます。
一次情報源
- RFC 5321:簡易メール転送プロトコル(SMTP) — RFC Editor
- RFC 4954:認証のためのSMTPサービス拡張 — RFC Editor
- Amazon SES開発者ガイド — Amazon Web Services