메시지 본문의 구독 취소 링크 List-Unsubscribe 헤더와 원클릭 메커니즘은 서로 관련되어 있지만 기능은 다릅니다. 진단을 통해 보낸 사람이 실제로 보낸 메커니즘과 필요한 서명된 헤더가 있는지 여부를 식별해야 합니다. 단순히 소스에서 unsubscribe라는 단어를 보는 것만으로는 제대로 작동하는 원클릭 구현을 구축할 수 없습니다.
두 필드를 함께 읽으세요
RFC 2369 목록 탈퇴를 위한 URL이 포함된 목록 명령 필드로 List-Unsubscribe 정의합니다. mailto 또는 HTTPS와 같은 방법을 설명할 수 있습니다. RFC 8058 원클릭 메커니즘을 위해 List-Unsubscribe-Post 추가합니다. 후자는 List-Unsubscribe 의 HTTPS URI와 함께 List-Unsubscribe =One-Click 값을 사용합니다. mailto 옵션만으로는 RFC 8058 HTTPS 메커니즘이 아닙니다. RFC 2369 섹션 3.2, RFC 8058 섹션 3.
원클릭 수신기는 지정된 구독 취소 값을 사용하여 HTTPS POST를 보냅니다. URL을 검사하는 루틴 GET은 자체적으로 RFC 8058 구독 취소 작업을 수행해서는 안 됩니다. 링크 스캐너는 사람이 목록을 떠나려고 하지 않고도 URL을 가져올 수 있기 때문에 이러한 구별이 중요합니다. 진단 검사를 무단 구독 변경으로 전환하지 마십시오.
서명 요구 사항을 확인하세요.
RFC 8058 에는 유효한 DKIM 서명 List-Unsubscribe 및 List-Unsubscribe-Post 모두 포함합니다. 서명의 h= 목록에서 두 개의 필드 이름을 찾는 것은 유용한 구조 검사이지만 서명이 확인한다는 것을 증명하지는 않습니다.
실제 확인을 위해 원본 서명된 메시지를 보존하세요. 여러 서명과 반복되는 헤더 필드에는 신중한 선택이 필요합니다. 순진한 부분 문자열 검색은 관련 없는 서명을 요구 사항을 충족하는 서명으로 착각할 수 있습니다. 서명 적용 범위, 암호화 검증 및 엔드포인트 동작을 별도의 검사로 유지하세요.
통제된 예시를 사용하세요
올바른 두 헤더 값이 있는 가상의 메시지를 생각해 보세요. 유일한 유효한 서명은 보낸 사람과 제목을 포함하지만 구독 취소 필드는 포함하지 않습니다. 두 번째 서명에는 두 필드가 모두 나열되지만 확인에 실패합니다. 이 메시지에는 DKIM 통과하고 소스 어딘가에 명백한 적용 범위가 있지만 두 서명 모두 결합된 RFC 8058 요구 사항을 충족하지 않습니다.
다음 단계는 승인된 발신자 변경을 통해 두 필드를 확인하고 포함하는 서명을 식별하거나 생성하는 것입니다. 이 교육 예제에서는 서명이 확인되지 않았거나 구독이 변경되지 않았습니다. 이후에 검증된 커버 서명도 HTTPS 엔드포인트 동작과 다음 전송 억제를 테스트되지 않은 상태로 남겨둡니다.
승인된 엔드투엔드 테스트의 경우 전용 테스트 구독과 발신자가 지원하는 테스트 환경을 사용하세요. 유효한 서명을 확인하고, 의도한 POST를 보내고, 서비스 자체 증거를 통해 테스트 구독 상태를 확인합니다. RFC 8058 HTTPS 리디렉션을 금지하고 POST에서 쿠키, HTTP 인증 및 기타 요청 컨텍스트를 제외합니다. 수신자는 게시하기 전에 반드시 이용자의 동의를 얻어야 합니다. 클릭하는 대신 리디렉션 또는 로그인 요구 사항을 결함으로 기록합니다. 엔드포인트는 추가 상호 작용 없이 구독 취소를 완료해야 합니다.
가입자 식별자 보호
구독 취소 URL에는 수신자별 토큰이 포함되는 경우가 많습니다. 전체 URL을 잠재적으로 해당 사람의 구독을 변경할 수 있는 것으로 간주하세요. 일반 진단 사본의 토큰을 수정하거나 교체하고, 손대지 않은 메시지를 비공개로 보존하고, 공개 티켓이나 자동화된 가져오기 도구에 라이브 URL을 붙여넣지 마세요.
명시적인 체크리스트로 종료합니다. 필드 존재, 올바른 구문, 서명 확인, 승인된 엔드포인트 테스트 완료 또는 수행되지 않음을 포함합니다. 공급자 대량 발송인 자격 및 구독 취소 인터페이스 표시는 별도의 제품 질문입니다. 표준 수준 헤더 확인에서는 사서함 공급자가 특정 버튼을 표시한다고 보장하지 않습니다.
각 레이어를 독립적으로 보고
헤더가 있지만 서명 유효성 검사를 사용할 수 없는 경우 구조적 결과만 보고합니다. 검증에 통과했지만 승인된 엔드포인트 테스트가 발생하지 않은 경우 동작을 테스트하지 않은 상태로 둡니다. 정확한 최종 샘플과 다음 레이어에 필요한 증거를 기록합니다.