AI要約
SMTPリレーは、WordPressのメールが受信トレイに届くか、消えるかを決定します。間違えると、領収書、パスワードリセット、フォーム通知が静かに消えてしまいます。
WordPressには独自のメールサーバーがありません。すべてのメッセージをホストが提供するものに渡します。それは通常、遅い、認証されていない、または完全にブロックされているものです。
以下で、SMTPリレーとは何か、ハンドオフの仕組み、使用するポートについて説明します。
また、wp_mail()が単独で失敗する理由も学びます。次に、Googleの2つのSMTPエンドポイントの違いと、リレーのテスト方法を説明します。始めましょう!
SMTPリレーとは?
SMTPリレーとは、メールを送信してくれるメールサーバーのことです。送信メッセージを受け取り、受信者のサーバーに転送します。
郵便局に手紙を出すようなものだと考えてください。ルートと評判がすでに確立されている配達員に手紙を渡します。
その評判が重要な部分です。リレーは、積極的に保護しているIPアドレスから送信します。メールにDKIM署名を行います。そして、GmailやOutlookと毎日交渉します。
ほとんどの人は、メールサービスプロバイダーからホストされたリレーを使用します。認証情報を取得し、サイトに接続すると、プロバイダーが配信を処理します。
SMTPリレーとSMTPサーバーの違いは何ですか?
SMTPサーバーは、メールを送受信し、ルーティングするソフトウェアです。SMTPリレーは、サーバーが行うジョブの1つです。信頼できる送信者から、所有していないドメインへのメールを転送します。
すべてのリレーはSMTPサーバーです。すべてのSMTPサーバーがあなたのためにリレーとして機能するわけではありません。
| SMTPリレー | SMTPサーバー | |
|---|---|---|
| 主な役割 | メールを他のドメインに転送する | メールを送受信し、ルーティングする |
| 方向 | 送信のみ | 送受信 |
| 認証 | 認証情報または信頼できるIPが必要 | 果たしている役割による |
| 誰が実行しているか | 通常はサードパーティプロバイダー | あなたのホスト、プロバイダー、またはあなた自身 |
| 必要な場合 | サイトでメールを確実に送信する必要がある場合 | メールインフラストラクチャを実行している場合 |
SMTPリレーの仕組み
SMTPリレーは5つのステップで機能します。サイトが接続し、暗号化し、認証します。次にメッセージを引き渡し、リレーが配信します。
シーケンスは次のとおりです:
- 接続。サイトは、リレーのホスト名に対して、サブミッションポートでTCP接続を開きます。
- 暗号化。接続はTLSにアップグレードされるため、認証情報は平文で送信されません。
- 認証。サイトは、パスワード、APIキー、または承認されたIPを使用して、自分が誰であるかを証明します。
- 転送。サイトは送信者と受信者を宣言し、ヘッダーと本文を送信します。
- キューに入れて配信。リレーはメッセージを受け取り、DKIM署名を行い、配信します。
引き継ぎの各ステップで何が起こるか?
ハンドオフはプレーンテキストの会話です。それを読むと、プロセス全体が理解できるようになります。ここでは、明確にするためにトリミングされた、リレーとの実際のSMTPセッションを示します。
220 smtp.example.com ESMTP ready
EHLO yoursite.com
250-smtp.example.com
250-STARTTLS
250 AUTH LOGIN PLAIN
STARTTLS
220 2.0.0 Ready to start TLS
AUTH LOGIN
235 2.7.0 Authentication successful
MAIL FROM:<[email protected]>
250 2.1.0 Sender OK
RCPT TO:<[email protected]>
250 2.1.5 Recipient OK
DATA
354 Start mail input
(message headers and body go here)
.
250 2.0.0 OK: queued as 4A2F1C
QUIT
数字で始まる各行は、リレーからの応答です。250コードは成功を意味し、235は資格情報が機能したことを確認します。
最後の250 2.0.0 OK: queued行が最も重要です。それ以前は、配信はあなたの問題です。それ以降は、リレーの問題です。
WordPressがSMTPリレーを必要とする理由
WordPressは独自のメールサーバーを持っていないため、SMTPリレーが必要です。デフォルトでは、メールをPHPに渡し、PHPはそれを署名も検証もされずにホストに渡します。
メールプロバイダーは、そのようなメッセージを疑わしいものとして扱います。あなたのドメインから送信されたという証明なしに届きます。多くの場合、数百のサイトと共有されているIPから送信されます。
wp_mail()はデフォルトで実際に何をするのか?
wp_mail()はPHPMailerライブラリを使用してメッセージを構築します。その後、PHPのmail()関数を介して送信します。SMTP接続、ログイン、署名はありません。
そのデフォルトのパスは、4つの特定の点で失敗します。
- 認証なし。メッセージがあなたのドメインから送信されたことを証明するものがありません。
- DKIM署名なし。受信サーバーは、コンテンツが改ざんされていないことを検証できません。
- エンベロープ送信者が一致しません。技術的な送信者があなたの「From」アドレスと一致しないことが多いため、SPFアライメントが失敗します。
- 共有IPの評判。サーバー上の他のすべてのサイトの評判を引き継ぎます。
WP Mail SMTPのようなSMTPプラグインは、phpmailer_initにフックしてPHPMailerをSMTPに切り替えることでこれを修正します。そのフックが何をするかの核心は次のとおりです。
add_action( 'phpmailer_init', function ( $phpmailer ) {
$phpmailer->isSMTP(); // stop using PHP mail()
$phpmailer->Host = 'smtp.example.com'; // your relay hostname
$phpmailer->Port = 587; // submission port
$phpmailer->SMTPSecure = 'tls'; // encrypt the connection
$phpmailer->SMTPAuth = true; // authenticate
$phpmailer->Username = getenv( 'SMTP_USER' );
$phpmailer->Password = getenv( 'SMTP_PASS' );
} );
共有ホスティングがこれを悪化させるのはなぜか?
共有ホスティングは、2つの理由でこれを悪化させます。ホストはメールに必要なポートをブロックし、送信IPを他のユーザーと共有します。
スパム送信者の隣人が共有IP範囲全体をブロックリストに載せられたのを見たことがあります。無関係なサイトが多数それに巻き込まれました。
ほとんどのホストは、その悪用を停止するためにアウトバウンドポート25をブロックします。一部のホストは、メールを1時間あたり数百通に制限します。他のホストは、PHPが送信しようとするものをサイレントにドロップします。
リレーはそれらすべてを回避します。あなたのメールは、ホストがブロックしないポート上の認証された接続を介して送信されます。送信IPは、それを保護するプロバイダーのものです。
SMTPリレーが必要になるのはいつか?
あなたのサイトが誰かが待っているメールを送信するようになったら、SMTPリレーが必要です。パスワードリセット、領収書、フォーム通知はすべて該当します。
これらの場合はセットアップしてください。
- あなたのサイトがトランザクションメールを送信する場合
- WordPressからのテストメールが失敗するか、届かない場合
- あなたのメールが受信トレイではなくスパムフォルダーに着信する場合
- 共有ホスティングを使用しており、ポート25が通常ブロックされている場合
- メッセージが送信されたことを証明するために配信ログが必要な場合
- 1日に数十通以上のメッセージを送信する場合
ごくまれなケースでは、リレーをスキップできます。サイトが完全に静的な場合、何も送信する必要はありません。フォームもアカウントもストアもありません。
どのSMTPリレーポートを使用すべきか?
STARTTLSを使用したポート587を使用してください。これは標準のサブミッションポートであり、暗号化されており、ホストがブロックすることはめったにありません。
| ポート | 暗号化 | 次の場合に使用します | 共有ホスティングでブロックされていますか? |
|---|---|---|---|
| 587 | STARTTLS | ほぼ常に。デフォルトの選択肢です。 | めったにありません |
| 465 | 暗黙的TLS | プロバイダーまたはホストが推奨しています | 時々 |
| 2525 | STARTTLS | 587と465の両方がブロックされています | めったにありません |
| 25 | 通常はありません | サーバー間リレーのみ。サイト用ではありません。 | ほぼ常に |
ポート587はRFC 6409で定義されているメッセージサブミッションポートです。ポート465は暗黙的なTLSを使用するため、コマンドが送信される前に暗号化が開始されます。RFC 8314で文書化されています。
ポート2525はどのRFCにも含まれていません。プロバイダーは非公式のフォールバックとして提供しており、ファイアウォールは通常これを無視するため機能します。
smtp-relay.gmail.comとsmtp.gmail.comの違いは何ですか?
これらは2つの別個のGoogleサービスであり、認証方法が異なります。smtp-relay.gmail.comは、アプリやデバイス向けのGoogle Workspaceリレーです。smtp.gmail.comはGmail SMTPサーバーであり、1つのメールボックスとして送信します。
これらを混同することが、私が目にする最も一般的なGoogle SMTPの間違いです。
| smtp-relay.gmail.com | smtp.gmail.com | |
|---|---|---|
| 用途 | ドメインの代理で送信するアプリ、サイト、デバイス | 単一のGmailまたはWorkspaceメールボックスとして送信 |
| Workspaceが必要ですか? | はい | いいえ |
| 認証方法 | 承認されたIPアドレス、またはSMTP認証情報 | メールボックス認証情報のみ |
| として送信 | 確認済みのドメイン上の任意のメールアドレス | そのメールボックスアドレスのみ |
| 送信制限 | より高く、ワークスペースアカウントごとに設定 | より低く、メールボックスごとに設定 |
リレーエンドポイントはIP範囲またはドメインで認証します。これは多くのメールアドレスのために送信するサーバーに適しています。Gmailエンドポイントは、各メッセージを1つのメールボックスログインに紐付けます。
Googleは、SMTPリレーガイドで現在の制限を文書化しています。Googleはこれらの上限を調整するため、ブログ記事の数字を信頼するのではなく、そちらを確認してください。
SMTPリレーは廃止されますか?
いいえ。SMTPリレーは廃止されず、Googleのリレーサービスは引き続き完全にサポートされています。
混乱は、人々が半分覚えている実際の変更から生じています。GoogleはWorkspaceアカウントの「安全性の低いアプリ」のサインイン方法を廃止しました。
その変更により、通常のメールパスワードでログインする方法が1つなくなりました。SMTPリレーが削除されたわけではありません。最新のリレーは、代わりにアプリパスワード、OAuth、APIキー、または承認済みIPで認証します。
Microsoftでも同様のパターンが見られ、SMTPの基本的な認証を廃止してきました。ここでも、プロトコルは残り、弱いログイン方法がなくなりました。
WordPressサイトでSMTPリレーを設定する方法
4つのステップでSMTPリレーを設定します。プロバイダーを選択し、ドメインを確認します。次に、SMTPプラグインをインストールし、認証情報を追加します。
開始する前に必要なものは?
まず、これらを集めます:
- 送信元のドメイン(無料のGmailやYahooアドレスではないもの)
- SPFとDKIMのためのDNSレコードへのアクセス
- SMTPリレープロバイダーのアカウント
- WordPressサイトへの管理者アクセス
次に、これらを進めます:
- リレープロバイダーを選択します。プランは、最良のシナリオではなく、実際の月間送信量に合わせてください。
- 送信ドメインを確認します。プロバイダーから追加するDNSレコードが提供されます。それらを追加することで、リレーがあなたとしてメールに署名できるようになります。
- SMTPプラグインをインストールします。プラグイン » 新規追加に移動し、WP Mail SMTPプラグインを検索して、今すぐインストール、次に有効化をクリックします。
- リレーの詳細を入力します。プロバイダーから提供されたホスト、ポート、暗号化タイプ、および認証情報を追加します。
WP Mail SMTPは、セットアップウィザードでステップ3と4を処理します。また、主要なプロバイダー向けの組み込みメーラーも付属しています。生のSMTP詳細を入力するよりも、メーラーを選択する方が優れています。ホストとポートは自動的に入力されます。
SMTPリレーが機能していることを確認する方法
テストメールを送信し、メッセージヘッダーを読みます。3つのパスが必要です:承認、SPF、DKIM。
WP Mail SMTPには、SMTPおよびメーラー接続をテストするためのテストメール機能が含まれています。テストメールを送信するには、 WP Mail SMTP » ツール に移動し、 メールテスト タブを開きます。宛先フィールドに受信者のメールアドレスを入力します。
完了したら、メール送信ボタンをクリックします。設定が正しければ、成功!というメッセージが表示されます。

「送信成功」と表示されるだけのテストでは不十分です。これはリレーがメッセージを受け付けたことを確認するだけで、実際の受信トレイが受け付けたことを確認するものではありません。
受信したテストメールを開き、元のメッセージを表示して、以下を確認してください。
Received:はリレーのホスト名を示します。 PHPではなく、リレーを経由してメールが送信されたことを確認します。spf=pass。 DNSがリレーにあなたのドメインからの送信を許可していることを示します。dkim=pass。 メッセージに有効な署名が付いています。dmarc=pass。 SPFまたはDKIMがFromドメインと一致しています。
テストが失敗した場合、原因はほぼ常に3つのうちの1つです。
- ポートまたは暗号化の間違い。 ポート587(STARTTLS)を試してから、ポート465(TLS)を試してください。
- 認証情報の拒否。 アプリパスワードまたはAPIキーを再生成して、再入力してください。
- ホストが接続をブロックしています。 アウトバウンドSMTPがフィルタリングされているかどうかをホストに確認し、ポート2525を試してください。
よくある質問
無料のSMTPリレーはありますか?
はい。ほとんどのリレープロバイダーは無料枠を含んでいます。月あたり数百通から数千通のメッセージを期待できます。無料プランは、小規模サイトのフォーム通知や領収書には十分です。一部のリレーではDKIM署名とログが削除されることがあるため、無料枠にそれらが含まれているか確認してください。
Office 365はSMTPリレーを許可していますか?
はい。Microsoft 365は2つの方法でSMTPリレーをサポートしています。認証済みクライアント送信にはsmtp.office365.comを使用するか、大量送信の場合はコネクタを使用します。Microsoftは基本的な認証を廃止しているため、モダン認証またはアプリパスワードを使用してください。
SMTPリレーは安全ですか?
SMTPリレーは、デフォルトのWordPressメールパスよりも安全です。TLSで接続を暗号化し、認証を要求し、DKIMでメールに署名します。ポート587または465を使用してください。認証情報はテーマファイルの外に保存し、侵害が発生した場合はローテーションしてください。
SMTPリレーで送信できるメールの数は?
制限はプロバイダーとプランによって異なります。無料プランは月あたり数百通です。有料プランは数百万通に達します。リレーは月ごとの上限だけでなく、送信レートも強制します。大量送信の前に両方を確認してください。
SMTPリレーを使用する場合でもSPFとDKIMは必要ですか?
はい、そしてそれらはより重要になります。リレーがあなたのドメインとして署名できるのは、DNSがそれを許可している場合のみです。プロバイダーから提供されたSPFおよびDKIMレコードを追加してください。両方がパスしたら、DMARCレコードを追加してください。
次に、WordPressのSMTP設定を設定します
リレーの仕組みがわかったところで、次のステップはそれをあなたのサイトに組み込むことです。私たちのWordPress SMTP設定ガイドでは、正確なフィールドとメーラーオプションを説明しています。また、メールがスパムにならないようにするための設定についても説明しています。
メールの修正準備はできましたか?今日から始めましょう WordPressの最高のSMTPプラグインで。メールを修正する時間がない場合は、追加購入で完全なWhite Glove Setupアシスタンスを利用でき、すべての有料プランで14日間の返金保証が付いています。
この記事がお役に立った場合は、WordPressのヒントやチュートリアルについては、FacebookとTwitterでフォローしてください。