다른 이메일이 전송되면 활동 요약이 전송되지 않음

관리자 > 이메일 > 발송된 항목에서 다이제스트 이메일이 사용자에게 발송되지 않은 것을 확인했습니다. 그러나 해당 사용자들은 모두 user_watching_first_post 이메일을 수신했습니다(기본 설정값에 따라).

해당 사용자들이 최근 사이트를 방문했거나, “일수 이후 다이제스트 이메일 억제” 설정을 넘었거나, 이메일 설정을 변경한 것이 아님을 확인했습니다.

이전 게시물의 댓글에서 다른 이메일이 발송되면 다이제스트가 억제된다고 제안하고 있습니다:
Need to confirm that digest mails are being sent - support - Discourse Meta

알림 이메일이 사용자 활동으로 처리되어 다이제스트가 건너뛰어지는 것이 맞나요? 그렇다면 제가 기대했던 동작 방식과는 다릅니다…

우리는 특정 태그에 대해 "첫 게시물 감시"를 사용하여 고우선도 주제에 대해 사용자를 알림하도록 하고 있지만, 여전히 다른 포럼 활동에 대한 정기적인 다이제스트를 수신받기를 원합니다.

이 부분은 우리의 비전에서 매우 핵심적인 부분입니다 — 이를 어떻게 해결할 수 있을지 조언을 환영합니다.

2개의 좋아요

맞습니다. 저도 같은 우려를 가지고 있으며, 과거에 이 부분을 설정 가능하도록 요청한 바 있습니다.

현재 사전 설정된 관찰(preset watching)은 다이제스트/요약의 효과적인 사용을 다소 방해하고 있습니다. 하지만 그럴 필요는 없습니다.

1개의 좋아요

즉, 특정 주제에 대한 이메일 알림을 받으면 그 주제가 요약에 표시되지 않는다는 뜻인가요? 이미 다른 방식으로 이메일로 받은 메시지를 요약에서 다시 보고 싶지 않을 수 있다는 점은 이해가 갑니다.

그것보다 훨씬 더 큰 문제입니다. 이메일 알림을 받으면 카운팅이 완전히 초기화되어 알림보다 오래된 모든 주제가 요약에 포함되지 않습니다. 이 부분은 항상 마음에 걸렸습니다.

기본적으로, 이메일 알림을 받는 사용자가 사이트를 방문하지 않으면 이전 요약과 마지막 이메일 알림 사이에 게시된 모든 주제에 대한 노출이 전혀 없습니다. 그리고 요약이 마침내 생성될 때, 사이트가 실제로보다 훨씬 조용해 보입니다.

제안하신 대로, 이메일 알림을 받지만 사이트를 방문하지 않는 사용자에게는 알림을 받은 주제만 요약에서 제외되도록 하는 것이 좋겠습니다. 기본 감시 기능을 많이 사용하는 사이트에는 엄청난 개선이 될 것입니다!!

4개의 좋아요

확인해 주셔서 감사합니다, Nathan. 네, 다른 새로운 자격 요건에 맞는 주제들이 있었음에도 불구하고 다이제스트가 전송되지 않았습니다.

다이제스트가 단순히 이미 다른 방식으로 통보된 주제를 중복해서 보내지 않은 것이라면 그럴 수 있겠지만, 현재 보이는 동작은 정말로 실수이거나 상당히 역효과를 내는 버그로 보입니다.

@pfaffman - 이 규칙이 somehow 해킹될 수 있는 것처럼 들리나요? 아니면 개발자의 조치가 필요할까요?

3개의 좋아요

플러그인이 필요합니다. 한때 "요약/다이제스트 이메일의 3번째 위치(보통 새 사용자가 있는 곳)에 새 게시글 수를 추가한다"고 주장했던 플러그인을 한 번 작성한 적이 있습니다. 즉, 페이지 상단의 해당 헤더만 변경하는 것입니다.

그 전체 템플릿을 오버라이드하므로, 이것이 잠재적인 해결책이 될 수 있습니다.

https://staging.community.pianogroove.com/admin/email/preview-digest

이런 기능이 필요하시면 저나 Marketplace 채널에 문의해 주세요.

1개의 좋아요

다시 생각해 보니, 이것은 플러그인으로 우회해야 할 문제가 아니라 실제로 버그인 것 같습니다. 이 동작은 의도된 것이 아닐 것이라고 믿습니다.

Site_settings에는 다이제스트를 억제하는 옵션이 포함되어 있지만, 다른 이메일 알림과 관련된 옵션은 없습니다:

  • suppress digest email after days
  • digest suppress categories
  • digest suppress tags

더 중요한 점은, 이메일|활동 요약(Emails|Activity Summary) 사용자 설정이 다음과 같다는 것입니다: “내가 여기에 방문하지 않을 때, 인기 있는 주제와 답글에 대한 이메일 요약을 보내주세요.” – 예 또는 아니오, 끝. 추적(Tracking) 이메일과의 관련성은 표시되지 않습니다.



이러한 설정을 근거로 할 때, 사용자는 활동 요약 설정이 설명된 대로 독립적으로 적용되기를 기대해야 합니다.

알림을 받은 주제를 요약 다이제스트에서 제외하는 것은 좋은 기능이지만, 저는 그것을 사치로 여깁니다. 다이제스트가 추적 이메일 알림을 인식하지 못하도록만 해도 기대치에 부합하게 될 것입니다.

2개의 좋아요

제 능력 이상으로 깊이 들어가는 것 같지만, 궁금해서 Github의 코드를 살펴보고 있습니다…

app/mailers/user_notifications.rb 파일의 다이제스트(digest) 섹션에서,
topics_for_digest는 user.last_emailed_at를 고려한 min_date 기준으로 검색됩니다.

227행:

    min_date = opts[:since] || user.last_emailed_at || user.last_seen_at || 1.month.ago

    # 보여줄 토픽과 포스트를 가져옵니다
    digest_opts = {
      limit: SiteSetting.digest_topics + SiteSetting.digest_other_topics,
      top_order: true,
    }
    topics_for_digest = Topic.for_digest(user, min_date, digest_opts).to_a
    if topics_for_digest.empty? && !user.user_option.try(:include_tl0_in_digests)
      # 최소 24시간 이상 지난 신규 사용자의 토픽을 찾습니다
      topics_for_digest =
        Topic
          .for_digest(user, min_date, digest_opts.merge(include_tl0: true))
          .where("topics.created_at < ?", 24.hours.ago)
          .to_a
    end

(수정: last_emailed_at가 app/jobs/scheduled/enqueue_digest_emails.rb 및
spec/jobs/enqueue_digest_emails_spec.rb 등 다른 곳에서도 참조되고 있다는 것을 확인했습니다.)

이로 인해 user.last_emailed_at 값이 너무 최근인 사용자에게는 다이제스트가 생성되지 않는다고 생각합니다.

last_emailed_at에 어떤 이메일들이 포함되는지 파악하지 못했습니다. 분명히 추적(Tracking) 설정에 기반한 알림은 포함되지만, 개인 메시지 등은 어떨까요?

다이제스트는 user.last_seen_at만 고려하면 되지 않나요?

3개의 좋아요

네, 우리가 문서에 명시한 내용(아래 이미지 참고)을 고려할 때 이는 버그로 보입니다:

여기서 최종 사용자에게 얼마나 높은 수준의 세밀한 설정을 제공해야 하는지 궁금합니다:

이메일 다이제스트 수신: 무조건 | 내가 없을 때만 | 이번 달에 당신에게서 받는 유일한 이메일일 때만

이러한 엣지 케이스는 의도적으로 설계된 것으로 보이며, Discourse를 메일링 리스트로 사용하는 사용자와 관련이 있을 것입니다.

우선 이 기능을 신중하게 정의해야 한다고 생각합니다. 해당 이슈를 '기능’으로 변경하고 ‘member-experience’ 라벨을 붙이겠습니다.

2개의 좋아요

샘, 감사합니다!

현재 메일링 리스트 모드가 활성화되어 있을 때—적어도 사용자 설정 수준에서(아래 게시글 참조)—인터페이스가 다이제스트 설정이 무시됨을 명확하게 보여줍니다.

따라서 추가할 것은 “항상 보내기” 옵션 하나일 수도 있습니다. 예를 들어:

활동 요약:
[ ] 항상 이메일 다이제스트를 보내기
[ ] 여기에 방문하지 않을 때만 이메일 다이제스트를 보내기
(드롭다운): 30분마다 | 1시간마다 | 매일 | 매주 | 매월 | 6개월마다

다만 “항상” 옵션은 있으면 좋은(nice-to-have) 기능이라고 생각합니다. 다이제스트를 다른 이메일과 독립적으로만 만들어도 예상대로 작동할 것 같습니다.

(부연: 만약 큰 규모의 포럼을 운영한다면, 사용 가능한 시간 범위를 관리자가 설정할 수 있도록 원할 것입니다. "항상 보내기… 30분마다"를 선택하는 사람이 너무 많으면 이메일 요금이 크게 증가할 수 있습니다.)

이 문제는 제가 보고한 주요 이슈보다는 부차적인 사항이지만, Sam의 메일링 리스트 모드와 활동 요약(Activity Summary)에 대한 우려와 관련이 있습니다.

흥미롭게도, 관리자가 "기본 이메일 메일링 리스트 모드"를 활성화하고 동시에 "메일링 리스트 모드 비활성화"를 설정한 경우(시나리오 A)에는 어떤 일이 일어나는지 명확하지 않습니다. 사용자는 메일링 리스트 모드에 대한 어떠한 정보도 볼 수 없으며, 여전히 활동 요약 및 기타 이메일을 활성화할 수 있는 것으로 보입니다.

두 관리자 설정은 서로 독립적으로 보이지만, 실제로는 종속성이 있을 수 있습니다… "사용자가 메일링 리스트 모드를 활성화하는 것 금지"가 "기본 메일링 리스트 모드"를 우선 적용하는 것일까요?

시나리오 A

관리자 설정, “메일링 리스트”:

사용자 설정|이메일:


반면, 관리자가 “메일링 리스트 모드 비활성화” 옵션의 체크를 해제하면, 사용자는 "메일링 리스트 모드 활성화"로 기본 설정되어 있음을 확인할 수 있습니다. 이는 충분히 명확해 보입니다.

시나리오 B

관리자 설정, “메일링 리스트”:

사용자 설정|이메일:

따라서 시나리오 A에서는 메일링 리스트 모드가 실제로 활성화되어 있는지 여부를 나타내는 무언가가 누락된 것으로 보입니다. (물론 제가 놓치고 있는 것일 수도 있지만.)

안녕하세요, 멤버 경험 팀 – 이 건이 추가 검토를 위해 대기열에 올라갔는지 궁금해서 여쭤봅니다.

혹시 진행되고 있는지 확인하려고 다시 찾아왔어요…

이미 @lindsey에게 이 문제를 제기했지만, 안타깝게도 아직 로드맵에 반영할 시간을 찾지 못했습니다.

현재 우리는 pr-welcome 환경에 있으며, 일단 시도해 본 후에 포함 여부를 검토하는 단계에 있다고 생각합니다.

업데이트 소식 감사합니다, Sam. PR을 개발하고 제공할 실력이 있었으면 좋았을 텐데.

릴리스 노트에 포함된 수정 사항과 개선 사항의 수를 보면 백로그가 얼마나 쌓여 있을지 상상도 되지 않습니다. 하지만 이 문제가 관심을 받을 수 있기를 바랍니다. 요약이 사용자를 신뢰할 수 있게 최신 상태로 유지하지 못할 것이라고 의심할 이유가 없기 때문입니다.

Hey @ToddZ — 제가 연락을 못 드려서 죄송합니다. 이 문제를 언급해 주셔서 감사합니다.

@sam님과 동의합니다. 알림을 받는 것만으로는 활동 요약 이메일을 받을 수 없게 만드는 방문으로 간주되면 안 된다고 생각합니다. 팀과 함께 이 문제를 수정하고, 해결되면 다시 알려드리겠습니다. 다만, 현재 예상 완료 시점(ETA)을 공유할 수는 없습니다.

2개의 좋아요

감사합니다, @lindsey! 예상 도착 시간이 정확하지 않다는 점은 잘 알고 있어요. 작업이 진행 중이라는 걸 알게 되어 다행이고, 업데이트를 기대하겠습니다. :smiley:

1개의 좋아요

보고해 주셔서 감사합니다 @ToddZ :+1:

다음 PR로 수정될 예정입니다:

3개의 좋아요

이 주제는 44시간 후 자동으로 닫혔습니다. 더 이상 새 답글을 작성할 수 없습니다.

@ToddZ 님이 이 주제를 업데이트하는 것을 잊었다고 상기시켜 주셨습니다.

해당 커밋은 되돌려졌지만, 이후 이 PR을 통해 영구적으로 수정되었습니다.

4개의 좋아요