本文へスキップ

SMTPとメールAPIの違い

SMTPとメールAPIは、メッセージをメールプロバイダーに渡す2つの方法です。どちらを使っても到達率は同じです。受信トレイに届くかを決めるのは、送信プロトコルではなく、認証とドメインの評価だからです。SMTPはあらゆるメールシステムが使う共通のプロトコルで、APIはHTTPS上で構造化されたエラー、テンプレート、Webhookを加えます。

更新日:6分で読めます執筆 fromHello

要点

  1. SMTPかAPIかを選ぶのは、アプリからプロバイダーへの最初の区間だけです。メールサーバー間では、どのメッセージもSMTPで運ばれます。

  2. 同じプロバイダーなら到達率は変わりません。受信トレイに届くかを決めるのはSPF、DKIM、DMARCとドメインの評価で、送信プロトコルではありません。

  3. 移行のしやすさではSMTPが優れています。メールを送ったことのあるソフトウェアなら必ず対応しており、プロバイダーの乗り換えは認証情報の差し替えで済みます。失敗時の扱い、テンプレート、WebhookではAPIが優れています。

  4. fromHelloは、Resend、Postmark、SendGrid、任意のSMTPサーバー、Microsoft 365のいずれかからワークスペースごとに選んで送信します。送信除外リストと同意は、どの経路でも適用されます。

違いをひとことで言うと?

SMTPは、ソフトウェアがメールをサーバーに渡すためのオープンなプロトコルです。メールAPIは、プロバイダーごとに異なるHTTPSのインターフェースで、構造化されたデータとイベントのフィードバックによって同じ役割を果たします。受信トレイに届くかどうかを決めるのは送信プロトコルではなく、認証とドメインの評価です。SPF、DKIM、DMARCは、どちらの経路にもまったく同じように適用されます。ですから、移行のしやすさ、エラー処理、ツールといった連携面の観点で選んでください。プロバイダーがメッセージを受け付けたあとに起きることについては、スタートアップのためのメール到達率のガイドで解説しています。

選択をすっきり整理する4つの用語。選ぶのは送信の経路で、配送はどの場合もSMTPで行われます。

SMTPでの送信はどう機能しますか?

アプリケーションがプロバイダーのサーバー(SMTPリレー)に接続し、完成したメッセージを渡します。送信には、RFC 6409の規定どおり、通常は認証付きの587番ポートを使います。転送プロトコルそのものはRFC 5321で、現在の形で標準化されたのは2008年ですが、それよりずっと前から使われています。だからこそ、あらゆるものが対応しています。どんなフレームワーク、CMS、フォーラム、監視ツール、数十年前のスクリプトでも、ホスト、ポート、認証情報さえあればこの方法で送信できます。これがSMTPの目立たない利点です。移行は認証情報の差し替えで済むため、メール配信プラットフォームを乗り換えても、送信のコードを書き直す必要はありません。SMTPへの対応が標準で備わっている、セルフホストのスタックにも自然に合います。

メールAPIでの送信はどう機能しますか?

コードから、プロバイダーのHTTPSエンドポイントをJSONデータとともに呼び出します。宛先、本文またはテンプレートの参照、タグ、メタデータに加え、重複送信を防ぐための冪等性キーを付けることもよくあります。応答は同期的で、メッセージIDとともに成功が返るか、コードで捕捉して再試行できるエラーが返ります。Postmarkのドキュメントはこの違いを明示しています。同社のREST APIは成功かエラーをすぐに返し、SMTPエンドポイントはすべてのメッセージを受け付けたうえで、エラーをバウンスとして記録します。そのバウンスは、バウンス用のWebhookで引き続き取得できます。受け付けたあとは、Webhookがバウンス、迷惑メール報告、開封をアプリに送り返します。これが、送信除外の自動化を可能にしています。プロバイダーのSDKを使えば、これらすべてを数行で書けます。その代わり、連携はそのプロバイダー専用になります。

SMTPとAPIの比較

判断のすべては、1つのトレードオフに集約されます。SMTPで得られるのは移行のしやすさ、APIで得られるのはフィードバックとツールです。項目ごとに見ると、次のようになります。

SMTPメールAPI
概要オープンなプロトコル(RFC 5321)。どこでも同じプロバイダーごとに異なる、HTTPS上の製品インターフェース
連携の手間ソフトウェアがすでにSMTPに対応していればほぼゼロ。ホスト、ポート、認証情報だけプロバイダーのエンドポイントやSDKに合わせたコードが必要
移行のしやすさ高い(プロバイダーの乗り換えは認証情報の差し替えで済む)低い(プロバイダーごとに形式が異なり、乗り換えには連携の書き直しが必要)
失敗時の扱い送信時に受け付けられ、一部の失敗はあとから非同期のバウンスとして表れる捕捉して再試行できる同期的なエラーと、非同期のイベント
イベントのフィードバックプロトコル自体にはなし。SMTPで送ったメールもプロバイダーのバウンス用Webhookで把握できるが、別途つなぎ込みが必要Webhookがバウンス、迷惑メール報告、開封をアプリに通知
テンプレートと分析プロトコル自体にはなし。完成したメッセージを送るテンプレートの参照、タグ、メッセージごとのメタデータ
セルフホストとの相性自然。セルフホストのソフトウェアは最初からSMTPに対応スタックに、ベンダー固有の依存関係が1つ増える

SMTPが適しているのはどんなときですか?

  • すでにSMTPに対応しているソフトウェア。CMS、フォーラム、ヘルプデスク、レガシーアプリは、新しい認証情報を入れるだけでプロバイダー経由の送信を始められます。
  • 移行のしやすさを最優先するとき。コードに手を入れずにプロバイダーを替えられる自由が欲しいなら、SMTPが中立なインターフェースです。
  • セルフホストのスタック。自社のインフラで動かすものには、ほぼすべてSMTPへの対応が組み込まれており、SDKは要りません。
  • 少量の業務メール。cronのアラートや社内通知のために、専用のAPI連携を組むほどの価値はまずありません。

APIが適しているのはどんなときですか?

プロダクトから大規模に送信するときです。オンボーディング、領収書、ライフサイクルのフローなど、メールがアプリケーションに組み込まれているなら、同期的なエラー、テンプレートの参照、イベントのWebhookは連携のコストに見合います。アドレスがバウンスしたり迷惑メール報告を受けたりした瞬間に、送信除外リストを自動で更新することもできます。ただし、APIで評価は買えません。評価は送信の経路ではなく送信ドメインに付くため、ドメインのウォームアップと認証は、どちらの方法で送信してもまったく同じように必要です。

fromHelloが両方に対応している理由

この選択は到達率ではなく連携の問題なので、fromHelloは両方のアダプターを備えています。HTTP API(Resend、Postmark、SendGrid)、任意のSMTPサーバー、Microsoft 365のメールボックスです。ワークスペースごとに既定のプロバイダーを設定でき、テンプレートごとに専用のプロバイダーを指定することもできます。アーリーアクセス中のfromHello Cloudでは、Teamプラン以上にメール送信の設定が含まれます。Coreプランやセルフホストでは、プロバイダーを自社で用意します。いずれの場合も、上限はプロバイダー側で決まります。たとえばResendは、SMTPエンドポイントにもAPIと同じレート制限を設けていると明記しています。そして送信除外リストと同意は、送信の経路に関係なくプラットフォームが適用します。送信除外されたアドレスは、メッセージがHTTPSで出ていくか587番ポートで出ていくかにかかわらず、除外されたままです。

FAQ

よくある質問

  • APIで送るほうがSMTPより到達率は高いですか?

    いいえ。同じプロバイダーであれば、送信プロトコルは受信トレイへの振り分けに影響しません。到達率を決めるのは、認証(SPF、DKIM、DMARC)、ドメインの送信者としての評価、リストの質で、どちらの方法でメッセージを渡しても同じです。振り分けが心配なら、送信の経路ではなく、認証とウォームアップに取り組んでください。

  • SMTPは非推奨になっていますか?

    いいえ。サーバー間でメールが運ばれる仕組みはSMTPで、APIで送信されたメールも同じです。変わったのは最初の区間です。たとえばPostmarkは、REST APIを主要なインターフェース、SMTPエンドポイントを移行用の経路と位置づけています。その下にあるプロトコルがなくなることはありません。

  • あとからSMTPをAPIに切り替えられますか?

    はい。リスクの低い変更です。送信者としての身元(ドメイン、認証レコード、評価)はまったく変わらず、変わるのはアプリがメッセージをプロバイダーに渡す方法だけです。まずはスピード重視でSMTPから始め、Webhookや構造化されたエラーが必要になった時点でプロダクトのメールをAPIに移すチームはよくあります。

  • 連携が早く済むのはどちらですか?

    何が送信するかによります。CMS、フォーラム、監視ツールなど、ソフトウェアがすでにSMTPに対応しているならSMTPが有利です。ホスト、ポート、認証情報を入力すれば完了です。プロダクトのコードを書くなら、実際にはたいていAPIのほうが早く済みます。整形、エラー処理、再試行をプロバイダーのSDKが引き受けてくれるからです。

fromHelloは、オープンソースのマーケティングオートメーションです。

人の行動をきっかけにメッセージを届けます。fromHello Cloudは、ウェイトリスト経由でアーリーアクセスを提供しています。

アーリーアクセス

fromHello Cloud

小さくまとまるために始めたわけではない。

fromHello Cloudのアーリーアクセスは、段階的にご案内します。 オンボーディングは伴走型です。セットアップからコンタクトの移行まで、私たちがお手伝いします。

ご利用の準備が整い次第、メールでお知らせします。スパムは送りません。

まだ登録する段階ではありませんか?GitHubで見る