외부 이메일 분석(Netcore)을 위해 다이제스트 이메일에 사용자 정의 X-TAGS 헤더를 추가하는 방법

안녕하세요 여러분,

저는 자체 호스팅(self-hosted)된 Discourse를 사용 중이며, 나가는 이메일에 커스텀 헤더, 구체적으로 X-TAGS를 추가하는 방법을 찾고 있습니다. 목표는 이메일 서비스 제공업체(Netcore Email API)와 연동하여 더 나은 분석 및 추적을 가능하게 하는 것입니다. 주간 다이제스트와 같은 특정 유형의 이메일에 태그를 붙여 이메일 참여도에 대한 더 세분화된 인사이트를 얻고 싶습니다.

문제:

다이제스트로 발송되는 모든 이메일에 X-TAGS: Digest와 같은 헤더를 추가해야 합니다. 이 헤더는 내부 추적을 위한 것이며, 이메일 제공업체가 전달 전에 제거하므로 최종 사용자에게는 표시되지 않습니다.

이미 살펴본 내용:

  1. 사이트 설정: /admin/site_settings/category/email 페이지를 확인했으며 email custom headers 설정을 찾았습니다. 그러나 이는 모든 이메일에 정적(static) 헤더를 추가하는 것 같습니다. 이를 동적으로 만들거나 특정 유형의 이메일(예: 다이제스트)에만 적용할 수 있는지 확실하지 않습니다.
  2. 기존 포럼 주제: Discourse Meta 포럼을 검색하여 커스텀 헤더에 대한 몇 가지 토론을 찾았지만, 대부분 이메일 제목에 주제 태그를 추가하거나 사용자 측 필터링(예: Gmail)에 초점이 맞춰져 있으며 외부 이메일 분석에는 해당하지 않습니다. 이를 위한 공식적으로 문서화된 간단한 방법이 없어 보입니다.

질문:

  1. 다이제스트 이메일에 X-TAGS와 같은 커스텀 헤더를 특별히 추가할 수 있는 내장된 방법이나 제가 놓치고 있는 특정 사이트 설정이 있습니까?
  2. 없다면, 이는 커스텀 플러그인으로 구현할 수 있는 기능입니까?
  3. 코어 코드를 수정하는 것이 유일한 해결책입니까? 그렇다면 어디를 봐야 하는지(예: 어떤 파일을 봐야 하는지) 방향을 제시해 주실 수 있습니까?

가이드나 제안이 있다면 큰 도움이 될 것입니다. 미리 도움을 주셔서 감사합니다!

아니요, 기본적으로는 지원되지 않습니다. email custom headers 사이트 설정은 모든 발신 이메일에 전역적으로 적용되지만, 다이제스트에만 적용하는 것은 불가능합니다.

네, 이 경우 사용자 정의 플러그인이 가장 좋은 접근 방식입니다.

현재 다이제스트 이메일의 흐름은 다음과 같습니다:

플러그인은 메시지 빌드 과정(Email::MessageBuilder)에 후킹하여, 다이제스트에만 조건부로 사용자 정의 헤더를 삽입할 수 있습니다(수정자(modifier)를 통해 하는 것이 바람직합니다).