반송, 스팸 신고 및 발송 제외
| 유형 | 의미 | 이벤트 | 결과 |
|---|---|---|---|
| 하드(영구) | 주소가 존재하지 않거나 도메인이 메일을 영구적으로 거부합니다. | email.bounced |
last_event가 bounced가 되고, 주소가 발송 제외 목록에 추가됩니다. |
| 소프트(일시적) | 사서함 가득 참이나 서버 장애 같은 일시적인 문제입니다. SES가 계속 재시도합니다. | email.delivery_delayed |
처음에는 발송 제외되지 않습니다. 30일 안에 서로 다른 이메일에서 소프트 반송이 3번 발생하면 주소가 발송 제외 목록에 추가됩니다. |
하드 반송에는 웹훅 페이로드에 bounce.type: "Permanent"와 bounce.subType이 포함됩니다.
소프트 반송이 계속되는 주소는 대개 방치된 주소이며, 메일함 제공업체는 반복된 시도를 내게 불리하게 집계합니다. 주소가 아니라 메시지 때문에 발생한 소프트 반송(메시지가 너무 큼, 콘텐츠나 첨부 파일 거부)은 횟수에 포함되지 않으니 메시지를 고치세요.
스팸 신고
섹션 제목: “스팸 신고”수신자가 이메일을 스팸으로 표시하고 메일함 제공업체가 이를 다시 알려 주면(피드백 루프) 스팸 신고가 발생합니다. SpacePost는 email.complained를 발생시키고, last_event를 complained로 설정하고, 수신자를 발송 제외 목록에 추가합니다. 스팸 신고는 가장 강력한 부정적 신호이므로 0.1% 미만으로 유지하세요.
발송 제외 목록
섹션 제목: “발송 제외 목록”발송 제외 목록은 팀 단위의 발송 금지 목록입니다. SpacePost는 발송하기 전에 모든 수신자(to, cc, bcc)를 이 목록과 대조합니다.
- 발송 제외된 수신자는 메시지에서 제거되고
email.suppressed이벤트가 발생합니다. - 남은 수신자가 없으면 아무것도 발송되지 않고 이메일의
last_event는suppressed가 됩니다. - 할당량은 발송 제외 확인보다 앞서 이메일이 접수될 때 계산되므로, 발송 제외된 수신자도 월 할당량에 포함됩니다.
항목은 하드 반송, 반복된 소프트 반송, 스팸 신고에서 자동으로 추가되거나 API로 직접 추가할 수 있습니다. 각 항목에는 reason(bounce, complaint, unsubscribe, manual)과 Hard bounce (NoEmail), 3 soft bounces in 30 days (MailboxFull) 같은 사람이 읽을 수 있는 detail이 있습니다. 주소에 처음 기록된 사유가 유지됩니다. 주소를 직접 추가해도 반송이나 스팸 신고 기록을 덮어쓰지 않습니다.
import { SpacePost } from "@spacepost/node";
const spacepost = new SpacePost();
await spacepost.suppressions.create({ email: "do-not-mail@example.com" });
const { data } = await spacepost.suppressions.list({ limit: 100 });for (const s of data?.data ?? []) console.log(s.email, s.reason);
await spacepost.suppressions.remove("do-not-mail@example.com"); // by email or id# listcurl https://api.spacepost.dev/suppressions?limit=100 -H "Authorization: Bearer $SPACEPOST_API_KEY"
# addcurl -X POST https://api.spacepost.dev/suppressions \ -H "Authorization: Bearer $SPACEPOST_API_KEY" -H "Content-Type: application/json" \ -d '{ "email": "do-not-mail@example.com" }'
# remove, by email or idcurl -X DELETE https://api.spacepost.dev/suppressions/do-not-mail@example.com -H "Authorization: Bearer $SPACEPOST_API_KEY"{ "object": "suppression", "id": "0192e1c4-0000-7000-8000-0000000000d1", "email": "nobody@example.com", "reason": "bounce", "detail": "Hard bounce (NoEmail)", "created_at": "2026-10-23T14:02:12.000Z"}도달할 수 없는 수신자 도메인
섹션 제목: “도달할 수 없는 수신자 도메인”수신자의 도메인이 메일을 전혀 받지 않으면(MX나 A 레코드 없음) SpacePost는 전달을 시도하지 않고 해당 수신자를 건너뛰며 email.suppressed를 발생시킵니다. 이렇게 하면 반송률을 보호할 수 있습니다. 계정 인증 및 발송 한도를 참고하세요.
테스트 주소 사용하기
섹션 제목: “테스트 주소 사용하기”bounced@test.spacepost.dev, complained@test.spacepost.dev, (세 번 발송한 뒤의) softbounced@test.spacepost.dev는 실제 발송 제외 항목을 만들고 비율에도 반영됩니다. 테스트 후에는 제거하세요. 테스트를 참고하세요.