요약 이메일이 모든 사용자에게 전송되지 않음 – 디버깅 도움 필요

안녕하세요 여러분,

대형 Discourse 포럼에서 요약 이메일(활동 요약 이메일)이 자격을 갖춘 모든 사용자에게 예상대로 전달되지 않는 문제를 겪고 있습니다.

문제 상세:

  • 요약 이메일은 비활성 사용자에게만 전송된다는 점에 동의합니다. 하지만 현재 설정에 따르면 여전히 수신 대상 사용자가 많아야 합니다.
  • 마지막 접속이 180일 이내인 일부 사용자는 요약 이메일을 받지 못하고 있습니다.
  • 관리자 > 이메일 > 건너뜀 로그에 명확한 오류는 표시되지 않지만, 이메일이 전달되지 않고 있습니다.

확인된 설정 및 구성:

  1. 사용자 활동 기반 전송:
  • 최근 방문한 사용자는 요약 이메일을 받지 않아야 합니다. 하지만 30일 이상 방문하지 않은 사용자가 많음에도 여전히 이메일을 받지 못하고 있는 것으로 확인되었습니다.
  1. suppress_digest_email_after_days:
  • 180일(기본값)로 설정되어 있습니다. 그러나 180일 미만으로 비활성 상태인 사용자도 여전히 요약 이메일을 받지 못하고 있습니다.
  1. default_email_digest_frequency:
  • 처음에는 **주간(10080분)**으로 설정되어 있었습니다.
  • **일일(1440분)**로 변경했으나 여전히 이메일이 전송되지 않고 있습니다.
  1. 이메일 로그 및 전달 확인:
  • 관리자 > 이메일 > 전송/건너뜀 로그에는 요약 이메일이 시도되었다가 건너뛰어졌다는 표시가 없습니다.
  • 테스트 계정을 확인한 결과, 사용자 측 이메일 설정에서 요약 이메일을 차단하는 내용은 없었습니다.
  1. 서버 및 이메일 제공업체:
  • 대규모 전송을 지원하는 대량 이메일 제공업체를 사용 중입니다.
  • 속도 제한이나 전달률 관련 문제는 발견되지 않았습니다.
  • 다른 유형의 이메일(알림, 비밀번호 재설정 등)은 정상적으로 전달되고 있습니다.

질문 사항:

  • 비활성 기준을 충족하는 모든 사용자에게 요약 이메일을 강제 전송할 수 있는 방법이 있을까요?
  • 모든 설정이 올바르게 되어 있음에도 요약 이메일이 전송되지 않는 근본적인 문제가 있을까요?
  • 대형 포럼의 경우 요약 이메일 일정 관리나 전송에 영향을 미칠 수 있는 알려진 제한 사항이 있을까요?
  • 사용자가 정기적으로 요약 이메일을 받을 수 있도록 하기 위해 조정해야 하는 다른 설정이 있을까요?

가이드나 문제 해결에 대한 조언을 주시면 감사하겠습니다. 미리 감사드립니다!

이를 테스트하기 위해 다이제스트 주기를 30분으로 설정하고 새 게시물이 작성되었는지 확인했지만, 해당되는 사용자에게 다이제스트 이메일이 전송되지 않았습니다.

저는 @emonunix의 업무를 지원하고 있습니다. 이 프로세스와 관련하여 30분마다 실행되는 sidekiq 작업이 있는 것 같습니다. 이 작업을 어떻게 문제 해결해야 하는지 알지 못하지만, 현재는 문제가 없이 실행되는 것으로 보입니다. 현재 상태는 다음과 같습니다.

실패 원인을 찾을 수 있는 다른 곳이 있을까요?

기대했던 대로 다이제스트 이메일이 전송되지 않는 이유를 파악하기 위해 다양한 설정을 테스트해 왔습니다. 테스트 목적으로 다이제스트 빈도를 30분으로 설정을 시도했지만, 설정이 저장되지 않고 몇 분 후에 오류가 표시되었습니다.

포럼 규모가 크기 때문에, 이는 Discourse가 대규모 환경에서 이러한 변경 사항을 처리하는 방식과 관련이 있을 수 있다고 추정합니다. 하지만 오류 로그가 생성된 것을 확인하지 못해 문제 해결이 더 어려워졌습니다.

특히 대규모 포럼에서 설정이 저장되지 않는 이유에 대한 통찰이나, 로그를 통해 더 많은 세부 정보를 기록하도록 강제하는 방법에 대해 조언해 주시면 감사하겠습니다.

콘솔에서 몇 가지 오류가 발생하고 있습니다:

콘솔 오류:

  1. 502 Bad Gateway
  • URL: /admin/site_settings/default_email_digest_frequency
  • 리소스 로드 실패: 서버가 502 상태 코드로 응답했습니다.
  1. 429 Too Many Requests
  • URL: /message-bus/9787a3d46f4640699f8b3bd12d33a6c8/poll
  • 콘솔 오류: POST /message-bus/... 429 (Too Many Requests)

이것이 발생하는 원인이 무엇인지 확실하지 않습니다—도움이 필요할 것 같습니다!

여기에 추가 정보를 보충합니다. 우리는 이 가이드를 여러 번 확인해 보았습니다:

하지만 이 가이드는 우리의 문제에 대한 해결책을 제공하지 않습니다.

다이제스트가 전송되지 않는 이유를 확인하기 위한 다음 단계가 있는지 아시는 분이 계신가요? 시스템이 다음 작업을 수행하고 있는지 확인할 수 있는 프로세스나 방법이 있을까요?

  • 대상 구독자 조회?
  • 목록 가져오기?
  • 목록을 메모리에 로드하기?
  • 생성 단계로 이동하기 등?

간단한 질문인데, 이 설정을 모든 사용자에게 소급 적용해서 변경했나요? 제 지식 범위 내에서는, 계정 생성 시 설정된 값은 기본값을 변경해도 바뀌지 않는 것으로 알고 있습니다.

본인 프로필을 확인해서 예상하는 값인지 살펴보세요.

네, 제 프로필과 무작위로 몇몇 사용자의 프로필을 확인해 보니 설정이 그대로 반영되어 있었습니다.

Bas님, 감사합니다. 30으로 업데이트했으며, 이 변경 사항을 소급 적용할 수 있습니다. 이 변경 사항을 적용할 때 시스템이 사용자 기록이 업데이트되고 있음을 확인하는 메시지를 표시합니다.

또한, 다이제스트 이메일이 전송되지 않는 오류와 관련이 없다고 생각합니다. 올바른 설정을 가진 사용자들도 여전히 이메일을 받지 못하고 있음을 확인했기 때문입니다.

다른 의견이 있으시면 알려주세요!

수신을 받지 못하는 몇몇 계정을 확인해서 카테고리 및/또는 태그가 음소거(muted)되어 있는지 확인해 보셨나요? 음소거가 설정되어 있으면 다이제스트에 해당 토픽이 포함되지 않는다고 생각합니다.

그렇지 않다면 팀이 가장 좋은 자원이 될 것입니다.

메일 서버 관련 설정으로, 도메인에 DKIM DNS 레코드를 추가하셨나요? 모든 SMTP 제공업체에서 이것이 필요한지는 확실하지 않습니다. 하지만 이메일이 스팸으로 분류되거나 차단되는 것을 방지하는 데 도움이 될 수 있습니다. 스팸 폴더를 확인해 달라고 사용자에게 요청해 보셨나요?

@Heliosurge에게 감사드립니다. 명확히 하자면, 이메일이 아예 전송되지 않고 있으므로, 읽혔거나 차단되었거나 스팸으로 전달되었는가의 문제가 아닙니다. Discourse가 애초에 이메일을 처리하지 못하고 있습니다. 지난 며칠간의 활동에 대한 스크린샷은 다음과 같습니다:

설정 및 구성을 고려할 때, 하루에 약 90개의 다이제스트가 발송되어야 합니다.

[사용자의 이메일 주소를 포함하고 있어 스크린샷은 편집되었습니다.]

따라서 우리가 파악한 바로는, 이메일이 애초에 대기열에 추가되지 않고 있습니다. 작업이 실행되지 않거나, 실패하고 있는 것 같습니다… 혹은 둘 다일 수도 있습니다.

하지만 다른 컴포넌트는 멤버의 태그 및 카테고리별 설정도 확인해야 합니다. 음소거된 항목이 있을 수 있기 때문입니다.

팀원이 답해야 할 또 다른 사항은, 멤버가 이메일의 구독 취소 링크를 사용할 경우 사용자 설정에 눈에 띄는 변화가 생기는지 여부입니다.

솔직히 이 문제는 IDDm(중복으로 보고된 문제)이라고 생각합니다. 하지만 어떤 종류의 버그가 있을 수도 있겠죠.

개인적으로 공유해 주신 모든 내용은 정상적으로 작동해야 한다고 생각합니다.

@Heliosurge 질문에 대한 답변이 늦어서 죄송합니다. 다이제스트를 받지 못하는 설정을 가진 사용자가 몇 명 있을 수는 있습니다. 사이트에는 설정을 직접 관리하고 있는 데모 사용자가 여러 명 있으며, 다이제스트가 정상적으로 전달되어야 한다고 확인했습니다(그렇게 생각합니다). 따라서 80명 모두가 다이제스트를 받지 않도록 설정을 변경한 경우는 아니라고 생각합니다.

오늘 한 가지 이상한 점을 발견했는데, 사이트에 접속했을 때 ‘마지막 방문’ 표시가 9일 전처럼 오래되어 있습니다. 그런데 저는 매일 방문하는데 말이죠. 이는 정확하지 않은 것 같습니다. 이 로직이 Discourse가 다이제스트를 전송할 날짜로 고려하는 것과 관련이 있을까요? 전혀 모르겠고, 그저 제 눈에 이상해 보여서 묻는 것입니다. 지금은 다음 단계를 위해 별다른手が(수단)가 없는 상태라…

이것과 관련이 있을 수 있습니다. 다른 사용자들에게도 확인을 요청하여 정확성을 점검해 보시기 바랍니다.

확인해 주시겠지만, 현재 보고 계신 것이 사이트의 마지막 방문 기록이 맞나요? 첨부하신 이미지에서 그것은 주제 내의 마지막 활동/게시글로 보입니다.

@Heliosurge 감사합니다.
@Jacob_Peebles가 해당 사이트를 자주 방문하므로 ____ 마지막 방문 ____ 라인 위에는 매우 새로운 게시글(예: 5~10분 전 또는 1~2시간 전)만 보여야 합니다.

하지만 Discourse가 마지막 방문 시간보다 8~9일 전의 게시글을 위쪽에 표시하는 이유를 파악하지 못했습니다.
제 계정으로 확인해 보았지만 이 문제는 발생하지 않았습니다.

여기서는 정말로 확신하기 어렵습니다. 관리자는 종종 문제가 발생했음을 가장 나중에 인지하게 되니까요.

자신의 마지막 방문 정보가 정확해 보인다고 하셨는데, @Jacob_Peebles의 마지막 방문 정보는 제대로 업데이트되지 않는다는 말씀이신가요?

얼마나 많은 다른 사용자들도 비슷한 문제를 겪고 있을지 궁금합니다.

Jacob님, 계정에서 다이제스트 이메일을 수신하고 계신가요? 늘 온라인에 계시기 때문에, 다이제스트 이메일이 발송되는 iirc 시간 범위 내에 있지 않을 수도 있습니다. 하지만 사용자가 얼마나 오랫동안 접속하지 않았는지를 설정하는 옵션을 확인하기 어렵네요. 혹시 말씀하신 30분, 1시간, 일일, 주 단위의 설정이 그런 것인지요.

이것이 얼마나 답답한지 충분히 이해합니다. 필요한 이메일만 발송하도록 하여 전송되는 이메일 부하를 줄이는 데 도움이 될 수 있을 테니까요.

@Heliosurge 아니요, 저는 다이제스트를 받지 못하고 있습니다. 하지만 지난 3일 동안 다이제스트를 받은 사용자가 단 한 명도 없습니다.

네, 정말 답답한 상황인 것은 분명합니다. 우리가 파악한 바로는 시스템 오류도 없고, sidekiq에도 아무것도 없으며, 로그에도 아무런 기록이 없어서 실제로 누구에게든 이런 일이 발생할 수 있습니다… 그리고 이메일이 의도대로 발송되지 않고 있다는 사실을 절대 알지 못할 수도 있죠… 무서운 일이네요.

이 사이트 설정과 관련이 있을 수 있습니다

제가 이해한 바로는, 이 설정은 로그아웃하지 않은 멤버가 최대 60일까지 로그인 상태를 유지할 수 있게 해줍니다.

2시간으로 설정해 볼까요?!? 왜 이 설정이 60일로 되어 있는지 확실하지 않습니다. 아니면 설정 설명이 정확하지 않은 건가요?

민감한 부위에 통증이 계속 발생하기 때문입니다. 기억이 맞다면 365일 설정을 사용하고 있습니다. 그리고 그와 관련된 알려진 문제는 없습니다.

세션 만료 시간은 계속 재로그인할 필요가 없도록 해주는 것일 뿐, 제 지식 범위 내에서는 이메일 요약과는 아무런 상관이 없습니다.