Discourse 멀티사이트 메일 전달 설정 조언 구합니다

안녕하세요 여러분,

몇 주간의 실험 끝에, 마침내 단일 컨테이너 내에서 멀티사이트 구성을 성공적으로 배포했습니다(수많은 실패 끝에 말이죠). 제게 이는 정말 놀라운 성과였습니다. 저는 매우 제한된 리소스를 사용하고 있기 때문이죠. 두 개의 사이트를 위해 약 1.34GB의 메모리를 사용하는 것은 놀라운 일이며, 두 개의 별도 컨테이너를 실행하는 것보다 훨씬 효율적입니다.

저는 이 세상에 조금이라도 기여하고자 커뮤니티를 구축하고 있지만, 불행히도 매우 비싼 호스팅 서비스를 감당할 여력이 없습니다. 월 20달러조차 저에게는 큰 지출입니다. 저는 제가 가진 리소스로 이를 반드시 성공시키고자 노력하고 있으며, 그래서 이렇게 도움을 요청드립니다.

그러나 각 서브도메인의 메일 전송과 관련하여 약간의 문제에 부딪혔습니다. 제가 파악한 바로는, 멀티사이트 구성에서는 사이트별로 고유한 이메일 주소를 사용할 수 있는 네이티브 지원 기능이 없는 것 같습니다. 이는 특히 Discourse가 xyz.discourse.group과 같은 호스팅된 인스턴스를 관리하는 점을 고려할 때 의아합니다. 인스턴스당 2GB의 메모리를 할당하지는 않을 것이라 생각하는데, 분명히 유사한 멀티사이트 방식을 활용하고 계실 것입니다.

질문은 이렇습니다: 각 서브도메인의 메일 전송을 어떻게 처리하고 계신가요?

예를 들어, xyz1.domain.com과 xyz2.domain.com이라는 사이트가 있다고 가정할 때, 모든 메일이 하나의 일반적인 주소에서 발송되는 것이 아니라, 각각 notification@xyz1.domain.com과 notification@xyz2.domain.com에서 발송된 것처럼 보이도록 하고 싶습니다. Postfix에 헤더 체크(예: X-Originating-Domain)를 구성해 보았지만, 모든 메일이 동일한 주소에서 발송되기 때문에 벽에 부딪혔습니다. List-Id 헤더와 같은 것을 활용하는 것이 더 나은 접근 방식일까요? 이것이 다소 민감한 주제이거나 독점적인 정보일 수 있다는 점은 이해하지만, 어떤 도움이라도 감사하겠습니다.

아마도 제가 너무 복잡하게 생각하고 있으며, 놓치고 있는 더 간단한 해결책이 있을 수 있다고 생각합니다. 이 문제를 어떻게 해결하고 계신지 공유해 주시거나, 올바른 방향을 제시해 주신다면 정말 감사하겠습니다.

시간 내어 조언을 주셔서 미리 감사드립니다!

이것은 잘못된 정보입니다. 어디서 그런 내용을 가져왔나요?
인스턴스별로 notification_email을 설정할 수 있습니다.

사이트별로 고유한 이메일 자격 증명을 지원하는 네이티브 기능은 사용할 수 없습니다.

다시 인사드립니다.

이전 게시물에서 혼란을 드려 죄송합니다. 문제를 정확히 설명하지 못했음을 깨달았습니다. 이제 명확히 설명드리겠습니다.

제가 직면한 문제는 멀티사이트(multisite) 환경에서의 이메일 전달입니다. 여기서 주요 문제는 서브도메인이 아니라 완전히 다른 메인 도메인입니다. 예를 들어, 같은 Discourse 컨테이너 내에서 xyz1.domain1.com과 xyz2.domain2.com과 같은 사이트를 설정하려고 시도하고 있습니다.

app.yml에서 단일 알림 이메일을 정의할 수 있다는 점을 알고 있습니다. 예를 들어 다음과 같습니다:

DISCOURSE_SMTP_ADDRESS: smtp.domain1.com
DISCOURSE_SMTP_PORT: 587
DISCOURSE_SMTP_USER_NAME: noreply@domain1.com
DISCOURSE_SMTP_PASSWORD: password
DISCOURSE_SMTP_ENABLE_START_TLS: true

이 설정은 첫 번째 인스턴스(xyz1.domain1.com)에서 완벽하게 작동합니다. 그러나 두 번째 인스턴스(xyz2.domain2.com)에서 이메일이 전송될 때, Gmail과 같은 이메일 제공업체는 이메일 헤더가 xyz2.domain2.com 도메인과 일치하지 않아 불일치(mismatch)로 표시합니다. 즉, 단일 멀티사이트 설정에서 각 도메인에 대해 별도의 SMTP 구성을 정의할 수 없습니다.

멀티사이트 환경에서 각 메인 도메인이 고유한 SMTP 자격 증명(예: 사이트별 별도 DISCOURSE_SMTP_* 설정)을 사용하는 시나리오를 성공적으로 처리한 사례가 있나요? 우회 방법이 있는지, 아니면 불일치를 피하기 위해 각 도메인마다 별도의 컨테이너가 필요한지 궁금합니다.

또는 별도의 컨테이너 없이 불일치 문제를 해결하는 데 도움이 될 수 있는 모범 사례나 도구(예: Postfix 조정, List-Id 헤더 사용)가 있을까요?

어떤 통찰이나 제안이든 큰 도움이 될 것입니다. 시간 내어 도와주셔서 다시 한번 감사합니다!

멀티사이트 설정에서 단일 계정으로만 메일 전송을 허용하기 때문에 이는 Discourse의 제한 사항처럼 보일 수 있지만, 사실 이는 이메일 제공업체의 제한 사항입니다. 제공업체는 계정에 대해 단일 발신자(From) 주소만 사용할 수 있도록 허용하기 때문입니다.

SMTP_USER_NAME이 이메일 주소처럼 보이는 이유는, 제공업체가 보내는 메일의 From: 헤더가 SMTP_USER_NAME과 동일해야 하도록(또는 동일하도록 재작성되어야 하도록) 강제하기 때문입니다.

이메일 헤더는 Discourse에 의해 설정되며, 헤더를 변경하지 않고 동일한 계정에서 여러 발신자 주소를 사용할 수 있는 이메일 제공업체를 사용하면 모든 것이 정상적으로 작동합니다.

이해했습니다. 결국 Postfix를 구성해서 사용자 정의 헤더 체크를 만들어야 하는 거군요:

/^From:.+@example\.com/ REPLACE From: Your Name <yourname@example.com>

그리고 이게 전부인가요? 감사합니다!

직접 설치한 Postfix를 사용하고 계시다면, 이 문제가 전혀 발생하지 않을 것입니다.