Skip to Content
가이드뉴스레터

뉴스레터

뉴스레터는 구독자 목록을 대상으로 대량 이메일 캠페인을 보내는 기능입니다. 현재 이메일 채널 전용이며, 대시보드 뉴스레터 › 구독자 / 캠페인 메뉴에서 관리합니다. 구독자·캠페인을 API로 관리하려면 뉴스레터 API를 참고하세요.

권한 경계는 다음과 같습니다.

작업필요 역할
구독자·캠페인 조회viewer 이상
구독자 등록·임포트·수정, 캠페인 생성·발송·취소operator 이상
구독자·캠페인 삭제owner / admin

구독자 관리

구독자는 주소(address), 이름(name), 동의 상태(consentStatus), 자유 속성(attributes)으로 구성됩니다.

동의 상태의미
subscribed수신 동의 — 캠페인 발송 대상입니다.
unsubscribed수신 거부 — 발송 대상에서 제외됩니다.
pending동의 대기 — 발송 대상에서 제외됩니다.
  • 동의 상태가 subscribed로 바뀌면 동의 시각이, unsubscribed로 바뀌면 수신거부 시각이 자동 기록됩니다. 정보통신망법상 동의 이력 요건을 위한 것입니다.
  • 구독자마다 수신거부 토큰이 자동 발급되어, 캠페인 본문의 수신거부 링크에 사용됩니다.

등록 시 이메일 주소는 소문자로 정규화되고, 형식 검사와 함께 도메인의 MX 레코드 조회로 실제 메일 수신 가능 여부를 검증합니다. 존재하지 않는 도메인이면 등록이 거부되고, 같은 채널·주소의 중복 등록도 막힙니다.

목록은 동의 상태 필터와 주소·이름 부분 검색을 지원합니다.

CSV 임포트

대시보드 구독자 화면의 “CSV 임포트”로 최대 5,000건을 한 번에 등록할 수 있습니다.

CSV 규칙은 다음과 같습니다.

  • 첫 줄은 헤더입니다. 표준 컬럼(대소문자 무시): channel(별칭 채널), address(별칭 email, 주소, 이메일), name(별칭 이름, 성명).
  • 표준 컬럼이 아닌 나머지 컬럼은 전부 구독자 속성(attributes)으로 저장됩니다. 뒤에서 설명할 속성 필터의 재료가 됩니다.
  • channel 값은 email(별칭 메일)만 허용됩니다. 그 외 값의 행은 건너뛰며, 오류 목록에 줄 번호가 표시됩니다.
  • 따옴표로 감싼 필드와 이스케이프("")를 지원합니다.
channel,address,name,등급,지역 email,kim@example.com,김철수,VIP,서울 email,lee@example.com,이영희,일반,부산

임포트 시 동의 상태를 한 번에 지정할 수 있으며(기본 subscribed), 결과는 다음과 같이 집계됩니다.

필드의미
created새로 등록된 구독자 수
updated이미 있던 주소 — 이름·속성이 갱신됩니다.
skipped형식 오류 등으로 건너뛴 행 수

캠페인 작성

캠페인 상태는 다음 흐름을 따릅니다.

  • 이메일 캠페인은 제목이 필수입니다.
  • 본문의 {{키}} 자리는 발송 시 구독자의 속성(attributes) 값으로 치환됩니다(값이 없으면 빈 문자열).
  • 수정은 draft 상태에서만 가능하며, 채널은 변경할 수 없습니다.

캠페인은 기본적으로 광고성으로 분류됩니다. 광고성 캠페인은 제목에 (광고) 표기가 자동으로 붙고(중복 방지), 본문 끝에 수신거부 안내 footer가 강제로 추가됩니다. 수신거부 안내는 비광고성 캠페인에서만 끌 수 있습니다. 정보성 메일이라면 광고성 여부를 명시적으로 꺼 두세요.

속성 필터로 대상 좁히기

대상 필터에 지정한 속성 key-value를 모두 포함하는 구독자만 발송 대상이 됩니다. CSV 임포트로 넣어 둔 속성을 그대로 쓸 수 있으며, 발송 전에 화면에서 대상 수를 미리 확인할 수 있습니다.

발송과 취소

발송

  • 예약 시각을 지정하면 그 시각에, 지정하지 않으면 즉시 발송합니다.
  • draft·scheduled 상태에서만 발송할 수 있고, 대상이 0명이면 발송이 거부됩니다.
  • 발송은 비동기 팬아웃입니다. 요청은 대상 검증 후 즉시 반환되고, 백그라운드에서 구독자별 발송 요청이 만들어져 기존 발송 파이프라인 큐에 적재됩니다. 팬아웃은 멱등이라 재시도해도 같은 구독자에게 중복 적재되지 않습니다.

실제 발송 대상은 다음 조건을 모두 만족하는 구독자입니다.

  1. 채널이 일치하고 동의 상태가 subscribed
  2. 이메일 suppression 목록에 없는 주소 — 반송(hard bounce)·수신자 불만(complaint)으로 차단된 주소는 자동 제외됩니다. (이메일 발송(SES) 참고)
  3. audienceFilter 속성 조건 일치

진행 상황은 캠페인 상세의 totalRecipients / queuedCount / failedCount와 상태별 전송 집계(deliveryStats)로 확인할 수 있습니다.

취소

  • scheduled 또는 sending 상태에서만 취소할 수 있습니다.
  • 아직 실행되지 않은 팬아웃 잡이 제거되고, 이미 큐에 들어간 발송 요청은 취소 처리됩니다. 취소된 건수가 화면에 표시됩니다.
  • 이미 공급자로 전달된 메일은 되돌릴 수 없습니다.
  • 캠페인 삭제는 draft / canceled / failed 상태에서만 가능합니다. 진행 중인 캠페인은 먼저 취소해야 합니다.

수신거부 처리

발송되는 메일의 footer에는 구독자별 토큰이 담긴 수신거부 링크가 포함됩니다. 수신자가 링크를 클릭하면 인증 없이 토큰만으로 확인 페이지가 열리고, 그 페이지의 버튼을 눌러야 수신거부가 확정됩니다. 링크를 여는 것만으로는 처리되지 않는데, 이는 메일 보안 스캐너가 본문 링크를 미리 열어보면서 수신거부가 의도치 않게 처리되는 것을 막기 위해서입니다. 메일 클라이언트의 List-Unsubscribe 원클릭 처리를 위한 API도 제공됩니다 — 뉴스레터 API 참고.

수신거부된 구독자는 동의 상태가 unsubscribed로 바뀌고 수신거부 시각이 기록되며, 이후 캠페인 대상에서 자동 제외됩니다.

수신거부와 suppression은 다른 개념입니다. 수신거부는 수신자의 의사 표시(동의 철회)이고, suppression은 반송·불만 신고로 시스템이 자동 차단한 주소 목록입니다. 캠페인 발송 시 둘 다 대상에서 제외됩니다.

다음 단계

이메일 발송(SES)

AWS SES를 연결하고 반송·불만 자동 차단을 설정합니다.

운영 가이드

발송 큐·전송 시도에서 발송 결과를 추적합니다.

Last updated on