inboxsink API

コードから操作できる使い捨て受信箱です。実際のメールボックスに依存せずに登録フローをテストできます。5 つのルート、https://inboxsink.com を基点に JSON でやり取りします。

決定的なルートが wait です。メールが届くまでブロックします。これがないと、エンドツーエンドテストは sleep で当て推量することになり、送信キューが遅れた途端に不安定になります。

無料の API キー

月 1 000 回まで、カード不要。テストスイートに組み込んで、実際に持つかどうか確かめるには十分です。

そのうちテストが弾かれ始めたら、独自ドメインはどこにも公開されないためブロックリストに載りません — 月額 29 €。

JavaScript クライアント

依存関係ゼロのパッケージで、Node 18 以降に対応。コードは GitHub にあります。

npm i inboxsink
import { InboxSink } from 'inboxsink';
const sink = new InboxSink(process.env.INBOXSINK_API_KEY);

const inbox = await sink.createInbox();
const code = await sink.waitForOtp(inbox.id);   // '204815'

waitForOtp はコードが届かないとき null を返さず例外を投げます。テストは静かに空欄を送信するのではなく、はっきり失敗すべきだからです。

認証

呼び出しごとに Authorization ヘッダーを付けます。キーはダッシュボードで作成でき、ibsk_ で始まります。

curl -H "Authorization: Bearer ibsk_…" \
  https://inboxsink.com/v1/domains

平文のキーは作成時にしか表示されません。以降は接頭辞だけが見えます。当社が保存するのはハッシュだけです。

受信箱を作る

POST /v1/inboxes

すべてのパラメータは任意です。domain(既定はプール内のランダムなドメイン)、prefix(既定はランダム)、ttl_seconds(60 秒から 30 日)。

curl -X POST https://inboxsink.com/v1/inboxes \
  -H "Authorization: Bearer $KEY" -H "Content-Type: application/json" \
  -d '{"ttl_seconds": 900}'

→ 201
{ "id": "42", "address": "9f2c1a@mailhusk.com", "expires_at": "2026-09-01T15:12:00Z" }

API で作成した受信箱は非公開です。作成したキーだけが読み取れます。

メールを待つ

GET /v1/inboxes/:id/wait

メールが届くまでブロックし、届いたら即座に応答します。timeout はミリ秒(既定 30 000、最大 120 000)、since で指定した ID より後のメールだけを受け取れます。

時間内にメールが来なければ本文なしの 204 を返します。これはエラーではなく、「何も届かなかった」に対する正常な応答です。

curl -H "Authorization: Bearer $KEY" \
  "https://inboxsink.com/v1/inboxes/42/wait?timeout=45000"

→ 200
{ "message": { "id": "913", "from": "no-reply@acme.com", "subject": "…",
               "otp": "204815", "link": "https://acme.com/confirm/9f3a" } }

otplink は抽出済みで返ります。コードは本文が実際にそれを示している場合にのみ報告されます(「コード」「認証」「ログイン」など)。請求金額や西暦がコードと取り違えられることはありません。

メールを一覧する

GET /v1/inboxes/:id/messages

sincelimit を受け付けます(既定 50、最大 200)。本文を含まない概要を返します。

メールを読む

GET /v1/messages/:id

メール全体:texthtmlheaders、および添付ファイルの一覧。

受信箱を削除する

DELETE /v1/inboxes/:id

受信箱とそのメールを即座に消去します。204 を返します。

エラー

204内容なし — wait では時間内にメールが届かなかった場合
400パラメータが不正
401キーがない、未知、または失効済み
403その受信箱は別のキーのものです
404受信箱またはメールが存在しない、あるいは期限切れ
429呼び出しが多すぎます

上限と保持期間

公開プールの受信箱は 1 時間で消えます。API で作成したものは各自の ttl_seconds に従い、最長 30 日です。期限を過ぎると受信箱とメールは削除され、あとから取り出せるアーカイブはありません。

10 メガバイトを超えるメールは受信時に拒否されます。未知のドメイン宛のアドレスは SMTP セッション中に拒否され、バウンスメールは生成しません。

この受信箱からメールを送ることはできません。これは意図的です。使い捨てドメインから送られたメールは、どこにも届かないからです。