領収書、コード、再設定

製品が送るメールを
呼び出しから結果まで

アプリがメールを POST すると、OpenEmail が自分のドメインから送信します。呼び出しはそれを行ったキーに紐づいて残り、送信ごとに結果を読めます。

あなたのコード
templateorder-receipt
idempotency-keyorder_10482
202msg_9f2c7a141 回だけ送信
あなたのエンドポイントhooks.acme.dev
email.sentmsg_9f2c7a14
email.deliveredmsg_9f2c7a14
email.openedmsg_9f2c7a14

呼び出しはメッセージ ID を返します。エンドポイントに届くイベントはすべて同じ ID を持ちます。

出発点

いまの状況。

メールはコードから出ていく

領収書、登録コード、パスワード再設定は人が書くのではなく、バックエンドが送ります。

送信したあと、何も返ってこない

コードが届かないと顧客に言われても、照合できる配信の記録がありません。

共有キーひとつ、呼び出しの記録なし

どのサービスも同じシークレットで送信し、どの呼び出しがいつ失敗したかは分かりません。

使い方

4 ステップで使い始める。

  1. 01

    ドメインを確認

    設定に表示されたレコードを公開すると、条件がそろった時点でドメインが緑になります。

  2. 02

    範囲を限定したキーを発行

    送信に使えるアドレスとドメインにキーを限定し、ロールで届く範囲を抑えます。

  3. 03

    メールを POST

    1 回の呼び出しでテンプレート、その値、宛先を指定します。再試行しても二重に送られることはありません。

  4. 04

    Webhook を受け、ログを読む

    エンドポイントはメッセージ ID ごとにすべてのイベントを受け取り、ログには配信済み、バウンス、失敗が表示されます。

支える機能

仕事をこなす部品。

動かしているのは、範囲を限定できるキーを持つ文書化された API、型付きの SDK、自分のエンドポイントへの Webhook、バージョン管理されたテンプレート、そして送信ドメインを裏づけるレコードです。

REST API

発行・スコープ設定・失効ができるキーを備えた、ドキュメント付きの HTTP API。

/threads?query=invoice
{ "threads": 12 }
人が使っていてもプログラムが使っていても、同じメールボックス。
型付きSDK

まずTypeScriptクライアント、その後に他の言語を。

/threads?query=invoice
{ "threads": 12 }
人が使っていてもプログラムが使っていても、同じメールボックス。
Webhook

メールの到着をエンドポイントに通知。ポーリングは不要です。

/threads?query=invoice
{ "threads": 12 }
人が使っていてもプログラムが使っていても、同じメールボックス。
テンプレート

一度書いた本文をバージョン管理して何度でも送信。作成画面からも、自分のコードからも、エージェントからも。

紹介請求書フォローアップ
Sarahさん、お会いできてうれしかったです。場所は
送信者認証済み

送信ドメインの公開レコードが揃っているとき、送信者の横にマークを表示します。

receipts@stripe.com
SPFDKIMDMARC
認証済み送信者
DMARC ポリシー

出発点となる p=none レコードを、コピー用に表示するか同期で書き込みます。こちらで勝手に厳しくすることはありません。

TXT_dmarc.acme.com

v=DMARC1; p=none; rua=…

任意監視のみ
自分のドメインでトラッキング

トラッキングリンクと開封ピクセルを、OpenEmailのアドレスではなく、links.yourdomain.comのように自分で選んだサブドメインで。

送信したメールの開封を確認

送信したメッセージが開封されたか、いつ、何回、どのリンクがたどられたか。オフにしない限り有効で、取得できない計測については率直に示します。

実際の使い方

それぞれの部品を、順を追って。

短いページが 4 つ、道筋をたどります。コードからの送信、呼び出しログの読み方、送信後に何が起きたか、そしてテスト実行の中のメール。最後のものはこれからです。

アプリから送るメール

領収書、確認コード、再設定リンクを自分のコードから送り、届いたことを受け取れます。

templateorder-receipt
202msg_9f2c7a14
email.sentmsg_9f2c7a14
email.deliveredmsg_9f2c7a14
email.openedmsg_9f2c7a14
連携を見守る

キーによる呼び出しと送信した Webhook のすべてを、コードと所要時間つきで。

oe_live_7f20ローテーション済み
GET/emails20061 ms
POST/emails429send_quota_exceeded
登録メールをテストする
近日公開

テストの実行ごとに専用アドレスを使い、届いたメールを読み取ります。

signup-02@acme.com
メールアドレスの確認730915
signup-01@acme.com418204
signup-02@acme.com730915
送信後に何が起きたか

送信ごとの結果を確認し、無効なアドレスを次の送信から外します。

[email protected]スキップ
配信129
バウンス3
ブロック[email protected]保留中

質問

登録前によく聞かれること。

再試行で同じメールが二度送られないのはなぜですか。

1 回の呼び出しでテンプレート、その値、宛先を指定するため、同じ呼び出しを再試行しても二度は送られません。呼び出しはメッセージ ID を返し、エンドポイントが受け取るすべてのイベントに同じ ID が付きます。

送信後に何が起きたかを見られますか。

はい。送信ごとに配信済み、バウンス、苦情、失敗が分かり、日付、送信元、送信アドレス別に見られます。リクエストログには、キーが行ったすべての呼び出しのメソッド、パス、ステータスコード、所要時間が残ります。

自分の言語の SDK はありますか。

多くの場合、まだありません。型付きクライアントは TypeScript が先行し、ほかの言語は後から続きます。それまでは、ほかの言語から文書化された HTTP API を直接呼び出してください。

関連

同じ受信箱でできるほかの仕事。

メールは製品が受け取り

チケットも、レコードも、顧客も、それぞれ専用のアドレスを持てます。そこに届いたメールは署名付きイベントとしてエンドポイントに届き、コードがそのアドレスとして返信します。

チケット 8123ticket-8123@in.yourapp.com
チケット 8124ticket-8124@in.yourapp.com
宛先ticket-8123@in.yourapp.com
差出人ticket-8123@in.yourapp.com同じアドレス
受信箱をソフトウェアにまかせる

エージェントに専用のアドレスと、できることに限定したキーを渡します。読み、ラベルを付け、下書きし、送信します。行った呼び出しはすべてログに残ります。

[email protected]メンバー
listThreadsgetThreadsearchMailsendEmail
二人以上に送るメール

テンプレートとして一度書きます。エディタから、自分のコードから、あるいは指定した日に送信し、そのあと結果を読みます。

こんにちは{{firstName}}Omar
お知らせを読む
[email protected]クリック
[email protected]送信済み
130送信済み42開封9クリック

受信トレイを、
あなたの思いどおりに。

企業、AI、エージェント、個人利用のためのメールインフラ。スケール、プライバシー、コントロールのために設計。メールが最初から備えているべきだったすべて。

OpenEmail

企業、AI、エージェント、個人利用のためのメールインフラ。スケール、プライバシー、コントロールのために設計。メールが最初から備えているべきだったすべて。

© 2026 OpenEmail. 無断転載を禁じます。