이메일 API
코드에서 보내세요, 정확히 한 번.
호출 한 번으로 메시지 하나 또는 백 통짜리 배치를 보냅니다. 모든 발송은 나가기 전에 ID가 생기고, 재시도하면 다시 보내는 대신 첫 결과를 돌려줍니다.
한마디로
트랜잭션 이메일 API란?
앱이 영수증, 로그인 링크, 알림 같은 자신의 메일을 누군가 보내기 버튼을 누르는 대신 HTTP 요청으로 보내는 방식입니다.
100
배치 호출 한 번의 메시지 수
365
미리 예약할 수 있는 일수
900
즉시 발송을 취소할 수 있는 초
작동 방식
전부 아니면 전무가 아닌 배치
호출당 최대 100통, 각각 따로 검사합니다. 잘못된 주소는 그 항목만 실패하고 나머지는 그대로 나갑니다.
지금, 나중에, 또는 취소 여유를 두고
최대 1년 앞까지 예약하거나 즉시 발송을 최대 15분 붙잡아 둘 수 있습니다. 나가기 전까지 취소하거나 다시 예약하세요.
모든 메시지의 기록
발송마다 즉시 msg_ ID가 붙습니다. 상태, 수신자별 이벤트, 열람과 클릭을 확인하세요.
배치 보내기
TypeScript SDK로, 또는 같은 JSON을 일반 HTTP로.
import { init, openemail } from '@openemail/sdk' init({ apiKey: process.env.OPENEMAIL_API_KEY }) const result = await openemail.emails.sendBatch( [ { from: '[email protected]', to: '[email protected]', subject: 'Order AC-4192 has shipped', text: 'It is on its way.' }, { from: '[email protected]', to: '[email protected]', subject: 'Order AC-4193 has shipped', text: 'It is on its way.' }, ], { idempotencyKey: 'shipments:2026-09-23' },) console.log(result.sent, result.failed)제공 기능
지금 제품에 있는 것
ID로 템플릿
저장된 템플릿을 보내고 테스트한 버전으로 고정하세요.
받는 사람의 언어로
translate를 추가하면 각 수신자가 자신의 언어로 읽고, 그렇지 않으면 아예 보내지 않습니다.
Resend 형식도 지원
Resend SDK를 /compat/resend로 향하게 하고 코드는 그대로 두세요.
활용 팁
제대로 활용하기
- 01
멱등성 키는 원인에서 만들기
주문 번호처럼 발송의 계기를 쓰고, 타임스탬프는 절대 쓰지 마세요.
- 02
상태를 읽기
202는 대기 중이거나 예약됨을 뜻합니다. 전달됐다고 하기 전에 status를 확인하세요.
- 03
보내는 메일에 태그
메시지당 최대 10개, 읽을 때마다 함께 돌아옵니다.
현재 상황
알아두면 좋은 점
- 테스트 모드 없음
- 모든 키가 실제 키라서 모든 발송이 실제로 전달됩니다.
- 발송에 반송 상태 없음
- 반송은 스레드와 email.bounced 웹훅에 도착하며 GET /emails에는 나타나지 않습니다.
- 작성 화면 발송은 목록에 없음
- 앱에서 보낸 메일은 GET /emails에 나타나지 않습니다.
질문
자주 묻는 질문
더 보기