사용자 설정에도 불구하고 채팅 알림 이메일이 전송되지 않음

채팅 채널의 모든 사용자에게 채팅 이메일 알림을 받을 수 있도록 설정(Preference)을 강제 업데이트하는 방법이 있을까요?

사용자들이 기본적으로 이메일을 받도록 설정하고 싶습니다.

감사합니다.

왜 그렇게 하시나요? 분명히 사용자의 설정은 본인이 원하는 것입니다. 저는 새로운 Discourse 인스턴스에 가입하면 가장 먼저 프로필로 가서 이메일 설정을 '절대 보내지 않음(Never)'으로 변경합니다. 누군가가 제가 Discourse와 어떻게 상호작용하길 원하는지 저보다 더 잘 안다는 식으로 판단해서 설정을 바꿔놓는다면 정말 화가 날 것입니다. 실제로 관리자가 저에게 그렇게 한다면 스팸으로 간주할 것입니다!

3개의 좋아요

네, 사용자가 선택한 것을 재정의하기 위한 것이 아닙니다.

하지만 초기 기본값을 설정하는 것은 의미가 있을 것입니다. 현재 채팅 기능을 활성화했는데, 이메일이 전혀 발송되지 않는 것으로 보입니다.

우리 같은 포럼에서는 사용자가 설정으로 들어가서 직접 선호도를 설정하지 않아도 적절하게 알림을 받을 것으로 기대합니다.

1개의 좋아요

방금 테스트 사이트를 확인해 보았는데, 채팅 이메일 알림의 기본값이 '부재 중에만’인 것 같습니다(다른 옵션은 '절대 보내지 않음’뿐입니다).

사용자 설정 관리자 설정에 기본값을 추가할 수 있는 근거가 있다고 생각합니다. 다만, 아마도 귀하가 제안한 것의 반대 방향으로 작동할 것입니다. :slightly_smiling_face: 이는 다른 기본값들과 마찬가지로, 사용자가 아직 수동으로 설정을 선택하지 않은 경우에만 해당 설정이 변경되는 방식으로 작동합니다.

이 내용을 Contribute > UX 채널로 넘겨서 검토를 요청했습니다. :+1:

4개의 좋아요

감사합니다. 하지만 기본값인 'Away 상태일 때만’은 최근에 사이트에 접속하지 않은 모든 사용자에게 이메일을 보내는 게 아닌가요?

일반 채팅 채널에 300명 이상의 회원이 있었지만, 메시지는 단 2건만 발송되었습니다.
말할 나위 없이, 그 300명 중 대부분은 15분 동안 사이트에 접속하지 않은 상태였습니다.

3개의 좋아요

모든 채팅 메시지에 대해 알림을 받는 것은 아니며, 멘션이 포함된 메시지(본인의 @멘션, @here, @all)에 대해서만 알림을 받으므로, 이것이 이유일 수 있습니다.

4개의 좋아요

죄송합니다, 제가 명확히 설명하지 못한 것 같습니다. @all(여기서만 공백을 추가했습니다)을 사용했지만 작동하지 않았습니다.

P.S. 사실, 저는 최근 활동한 회원으로 제 사이트의 잡담방에 왜 추가되지 않았는지 궁금합니다. :grinning:

2개의 좋아요

아, 죄송하지만 게시 투표 후 댓글 기능을 테스트한 후 내 테스트 계정을 삭제했습니다. :slight_smile:

채팅 사용자가 @all에 포함되는 시점에 이상한 점이 있는지 간단히 확인해 보았지만 (매우 짧게 살펴본 결과) 채널 목록에 있는 모든 사람이 포함되는 것으로 보였습니다. 이메일을 받지 못한 몇몇 사용자를 골라 알림을 받았는지, 그리고 채팅 이메일 설정이 올바른 상태인지 확인해 보시는 건 어떨까요?

3개의 좋아요

다음은 제 테스트 내용입니다:

1. 모든 항목에 대해 알림을 보내도록 채팅 채널 설정을 변경했습니다 (이메일에는 영향을 주지 않는다고 생각하지만).

2. 채널의 313명 중 한 멤버를 선택했고, 여기는 표준 사용자 설정인 '부재 중에만 이메일’입니다.
수 시간 전에 생성된 @all 채팅 메시지가 여기에서 볼 수 있듯이 알림을 보냈지만, 이메일은 보내지지 않았습니다.

3. 이메일은 2명의 멤버에게만 발송되었습니다. 둘 다 관리자/모더레이터이며, 둘 다 이전에 채팅을 사용했습니다 - 이것이 차이를 만드는 요인인지 확실하지 않습니다.

4. 별개로, 관리자가 사용자의 채팅 설정을 볼 수 없는 것 같습니다.

2개의 좋아요

오늘 아침에 좀 더 자세히 살펴봤는데, 제 쪽에서는 정상적으로 작동하는 것 같습니다. :thinking:

테스트 사용자는 6명이며, 모두 ~general 채널에 자동 가입된 멤버입니다. 그중 1명은 관리자이고, 1명은 채팅 채널(또는 채팅 자체)을 한 번도 열어본 적 없는 신규 TL0 사용자입니다. 어제 이후로 아무도 로그인하지 않았습니다(새로운 test_six 사용자는 제외합니다. 이 사용자는 테스트 전에 최소 15분 이상의 '다운타임’을 확보하도록 했습니다).

~general 채널에 @all로 핑을 보냈더니 모두에게 알림이 전송되었습니다. 잠시 후 6개의 chat_summary 이메일이 각자의 테스트 이메일 주소로 발송되었습니다.

더 확인해야 할 것이 있는지 잘 모르겠습니다. 코드 주위를 좀 돌아다녀 봤지만, 제 코드 해석 능력은 그다지 좋지 않습니다. :slightly_smiling_face: 다시 한번 생각해 보겠습니다.


알려주셔서 감사합니다. :+1: 팀에 전달했습니다. :slightly_smiling_face:

2개의 좋아요

감사합니다.
제 전문 지식이 많지는 않지만, lib/chat_mailer.rb의 users_with_unprocessed_unread_mentions 메서드가 이메일을 받아야 할 모든 사용자를 가져오지 않는 것 같습니다?

이 부분을 검증할 수 있는 방법이 있을까요…

@JammyDodger
제목이 실제 문제를 반영하도록 수정했습니다.
제안할 다른 테스트가 있을까요?
이 문제를 버그로 태그해야 할까요, 아니면 재현을 위한 다른 테스트가 필요하다고 보시나요?

아직 명확한 재현 단계를 파악하지 못한 것 같습니다.

제 이해로는 @JammyDodger 님이 보고하신 내용을 바탕으로 이 문제를 재현하려고 시도하고 있지만, 아직까지 성공하지 못한 상태입니다.

몇 가지 참고할 점:

정리하자면, 이것은 채널 전체 설정이 아니라 해당 채널에 대한 사용자 개인 설정입니다. 다만 보여 주신 내용은 기본값이므로, 313명 중 대부분이 그렇게 설정되어 있을 것으로 추정됩니다.

정말 부재 상태였는지 확인해 보셨나요? 사이트에 접속 중이었다면 알림이 이메일로 전송되지 않습니다.

좋습니다. 여기서는 무언가 의도대로 작동하지 않고 있다는 꽤 강력한 증거가 됩니다. 313명 중 2명보다 더 많은 사람이 부재 상태일 것이라고 예상했을 텐데요. 당시 모두 사이트에 접속 중이었을 가능성이 있나요?

2개의 좋아요

정리해 주셔서 감사합니다. 사실 저는 이것이 관리자가 변경할 수 있는 채널 설정이라고 생각했습니다. 솔직히 '설정’이라는 이름이 관리자용 컨트롤처럼 들리거든요.

네, 대부분(아니면 전부) 직전 15분 동안 자리를 비웠다고 단정할 수 있습니다(이런 수준의 참여율이면 좋겠네요 :blush: ). 자리를 비운 상태였던 비스태프 계정을 하나 골라 확인해 보기도 했습니다.

1개의 좋아요

이 문제를 재현하는 데 성공한 것 같습니다. :slightly_smiling_face: :raised_hand:

기존 테스트 사이트에서는 재현할 수 없었는데, 이전에 무언가를 수행하거나 변경/조정했기 때문일 수도 있다고 생각하여 새 사이트를 생성하여 그곳에서 시도해 보았습니다.

  • 새 사이트 생성
  • 채팅을 활성화하고 everyone을 chat_allowed_groups에 추가( staff와 함께)
  • 세 명의 테스트 사용자를 가입시키고 로그인한 후, ~general 채널에 자동 등록(그중 한 명은 관리자 권한 부여). 모두 로그아웃.
  • 차 한 잔 준비
  • 메인 관리자로 해당 채널의 멤버임을 확인한 후 @all로 멘션

  • 모두 알림을 받음
  • 이메일은 관리자 사용자만 수신

5개의 좋아요

@JammyDodger - chat allowed groups 설정의 값을 변경하셨나요? staff로만 설정되어 있다면, 관리자만 이메일을 받은 이유를 설명할 수 있습니다.

채팅을 활성화하고 동시에 everyone을 추가했습니다. :+1: (죄송합니다. 단계별 설명에서 빠뜨렸습니다. 지금 바로 추가하겠습니다)

@Roman 님, 원인을 파악한 것 같습니다. :raised_hand: everyone을 chat_allowed_groups에 추가하면 모든 사용자가 채팅에 접근하고 알림을 받을 수 있지만, @all 이메일은 받지 않습니다. 반면 trust_level_0을 추가하면 스태프가 아닌 테스트 사용자들도 @all 멘션에 대한 이메일을 받게 됩니다.

6개의 좋아요

와, 정말 대단한 조사였네요! :clap:

확인해 봤는데, 스태프를 포함해 채팅에 있는 모든 사람이 제 사이트에서 그룹을 허용할 수 있도록 설정되어 있습니다.

4개의 좋아요

고맙습니다 @JammyDodger :tada:

everyone은 다른 그룹들과 다르기 때문에 다르게 처리해야 합니다. 수정 사항을 여기에 준비해 두었습니다:

8개의 좋아요

@alehandrof 님이 그룹 채팅에서 메시지에 대한 이메일 알림을 받지 못하는 사용자가 있다는 보고를 했습니다:

특정 사람들과 채팅을 시도해 보고 있는데, 사람들이 "이메일 알림 설정이 올바르게 되어 있음에도 불구하고, 누군가가 채팅에 댓글을 달았다는 이메일 알림을 전혀 받지 못했다"고 보고하고 있습니다.

사용자들은 설정을 기본값으로 유지하고 있으며, 최근 활동이 없었다고 합니다:

그리고 그룹 다이렉트 메시지의 “채널” 설정은 기본적으로 “모든 활동에 대해” 알림을 받도록 되어 있으므로, @멘션 없이도 알림이 전송되어야 합니다.

반면, Alex(관리자)는 이메일 알림을 직접 받고 있습니다.

Alex 님, 현재 사이트에서 실행 중인 버전을 확인해 주시겠습니까?

채팅 기록
Originally sent in chat feedback
alehandrof

특정 사람들과 채팅을 시도해 보고 있는데, 이메일로 사람들에게 알림을 보내는 방식/시점이 정확히 어떻게 되는지 잘 이해가 되지 않습니다.

관련 설정은 아마 이 것 같습니다:

하지만 사람들이 "이메일 알림 설정이 올바르게 되어 있음에도 불구하고, 누군가가 채팅에 댓글을 달았다는 이메일 알림을 전혀 받지 못했다"고 보고하고 있습니다.

제가 놓치고 있는 것이 무엇일까요?

mcwumbly

@alehandrof 누락된 부분은 이메일 알림이 채널에 있는 모든 메시지에 대해 전송되는 것이 아니라, @멘션된 사람들에게만 전송된다는 점인 것 같습니다.

사용자들은 채널별로 모든 활동에 대한 알림을 받도록 선택(opt-in)할 수 있는 설정도 있습니다. 그 설정을 시도해 보시는 건 어떨까요? 그 경우에도 이메일이 전송되는지 기억이 나지 않습니다.

alehandrof

하지만 특정 그룹(채널이 아닌)의 사람들에게 채팅을 보내고 있다면, 그 특정 사람들에게 말을 거는 의도인 것 아닌가요?

또한, 그 3명의 그룹에서 저는 @멘션을 받지 않았을 때에도 이메일 알림을 받았습니다.

아마도 저만 받은 것으로 보이는 이메일 예시

왜 저는 받고 그들은 받지 않을까요? (관리자라면 차이가 있을 수 있습니다.)

방금 말씀하신 설정에 대해 방금 알게 되었습니다. 그들의 설정이 어떻게 되어 있는지 확인하기 위해 후속 조치를 취하겠습니다. 하지만 만약 그 설정들이 이 동작에 영향을 미친다면, 데스크톱과 모바일 알림에 대해서만 언급하고 이메일에 대해서는 언급하지 않고 있어 다소 불분명합니다.

참고로, 확인해 보니 제 동료 중 적어도 한 명이 저와 동일한 설정을 가지고 있습니다. 따라서 채팅이 이메일 알림을 처리하는 방식에 대해서는 여전히 답답한 상태입니다.

mcwumbly

오, 좋은 지적입니다. 다이렉트 메시지(여러 명이 포함된 경우 포함)의 기본 알림 수준이 "모든 활동에 대해"이므로, 이메일 알림이 전송되어야 한다고 생각합니다.

더 자세히 조사할 수 있도록 이 내용을 토픽으로 전환하겠습니다.