inboxsink API

코드로 다룰 수 있는 일회용 편지함입니다. 실제 메일함에 의존하지 않고 가입 흐름을 테스트하세요. 다섯 개 경로, 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'

코드가 오지 않으면 waitForOtpnull을 돌려주는 대신 예외를 던집니다. 테스트는 조용히 빈 칸을 채우는 대신 요란하게 실패해야 하니까요.

인증

호출마다 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로 특정 식별자 이후의 메일만 받을 수 있습니다.

시간이 다 되도록 메일이 없으면 본문 없는 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

메일 전체: text, html, headers, 그리고 첨부 파일 목록.

편지함 삭제

DELETE /v1/inboxes/:id

편지함과 메일을 즉시 지웁니다. 204를 반환합니다.

오류

204내용 없음 — wait에서는 시간이 다 되도록 메일이 없었음
400잘못된 매개변수
401키 없음, 알 수 없음, 또는 취소됨
403그 편지함은 다른 키의 것입니다
404편지함이나 메일이 없거나 이미 만료됨
429호출이 너무 많습니다

제한과 수명

공개 풀의 편지함은 한 시간 동안 유지됩니다. API로 만든 것은 각자의 ttl_seconds를 따르며 최대 30일입니다. 기한이 지나면 편지함과 메일은 삭제되고, 나중에 꺼낼 보관함은 없습니다.

10메가바이트를 넘는 메일은 수신 단계에서 거부됩니다. 알 수 없는 도메인의 주소는 SMTP 세션 중에 거부되며 반송 메일을 만들지 않습니다.

이 편지함은 메일을 보낼 수 없습니다. 이는 의도한 것으로, 일회용 도메인에서 보낸 메일은 어디에도 도착하지 못하기 때문입니다.