단계별 사용자들에게 user_linked 이메일이 전송됩니다

staged 상태의 사용자에게 user_linked 이메일 알림이 전송되고 있음을 확인했습니다. 제 사용 사례에서는 메일링 리스트 모드를 사용하여 외부 당사자의 이메일을 아카이브하고 있습니다. 다른 주제에서 외부(staged) 사용자의 메일/게시물에 링크를 걸면, 해당 staged 사용자에게 게시물의 본문이 포함된 이메일 알림이 전송됩니다! 이는 분명히 원하지 않는 동작이며, 심지어 유해할 수도 있습니다!

아래 메시지는 이것이 버그임을 시사합니다:

이것이 버그가 아니라면, 이 동작을 비활성화할 방법이 있을까요?

2개의 좋아요

음. @tshenry님, 이 문제를 재현할 수 있을까요?

1개의 좋아요

단계별 사용자(Staged User)의 설정 페이지에서 누군가가 나를 인용하거나, 내 게시글에 답글을 달거나, @사용자명을 언급하거나, 주제에 초대할 때 이메일을 보내기 옵션을 절대 보내지 않기로 설정하면 이러한 이메일 전송을 방지할 수 있는 것으로 보입니다.

아마도 Discourse는 모든 신규 단계별 사용자 계정에 대해 이 옵션을 절대 보내지 않기로 기본 설정할 수 있을까요? 아니면 최소한 이 부분을 설정할 수 있도록 해주는 것이 좋겠습니다.

이것은 로그인이 필요한 비공개 포럼이며, 그럴 필요가 없으므로 카테고리 자체는 비공개가 아닙니다. Private category comments exposed via email - #13 by gerhard

포럼에 로그인이 필요한 경우(또는 invite_only이거나 사용자 승인이 필요한 경우)에도 스테이징된 사용자에게 알림 이메일을 보내는 것을 방지해야 하는지 확신이 서지 않습니다. 이 부분은 고민 중입니다. 포럼이 공개된 경우 알림은 분명히 의미가 있습니다.

그럼에도 불구하고, 비공개 포럼 사용 사례에서는 이러한 동작을 비활성화할 수 있는 기능이 매우 유용할 것입니다.

대안으로, 이 문제를 해결하기 위해 모든 카테고리의 권한을 신뢰 수준 1 이상으로 설정할 수 있습니다. 하지만 그러면 모든 카테고리 이름 옆에 자물쇠 아이콘이 표시됩니다. 이것을 어떻게든 숨길 수 있을까요?

네, CSS를 사용하여 잠금 아이콘을 숨길 수 있습니다:

.d-icon-lock {
    display: none;
}
4개의 좋아요

내 포럼에는 고정된 사용자 집합이 있으므로, 새로 생성된 모든 사용자 계정(스테이징된 사용자 계정 포함)에 대한 알림 이메일을 비활성화하는 것을 고려하고 있습니다. 기본 이메일 수준(default email level) 설정을 never로 설정하면 기존 사용자의 이메일 알림 설정에는 영향을 주지 않고 새 사용자에만 적용할 수 있도록 선택할 수 있음을 확인했습니다.

참고: Discourse disable emails when someone replies etc - #2 by pfaffman

기본 재현 방법은 다음과 같습니다:

  1. 사이트는 로그인 필수이며, 카테고리는 비공개가 아닙니다.
  2. 아직 계정에 연결되지 않은 이메일 주소로 개인 메시지(PM)를 보내어 스테이징된 사용자를 생성합니다.
  3. 해당 스테이징된 사용자가 이메일로 PM에 답장하도록 합니다.
  4. 포럼의 별도 주제에서 스테이징된 사용자의 이메일 PM 답장을 인용합니다.
  5. 포럼의 별도 주제에서 스테이징된 사용자의 이메일 PM 답장으로 링크를 겁니다.
  6. 스테이징된 사용자에게 user_linked 이메일 알림이 전송되지 않았습니다 지연은 있었지만, 스테이징된 사용자는 결국 두 가지 모두에 대한 알림 이메일을 받았습니다.

@codinghorror님, 의견 주시겠어요?

3개의 좋아요

확실한 버그입니다. @eviltrout 님, 내일 수정을 스케줄링하고 백포트할 수 있을까요? 매우 어려운 경우가 아니라면요. 스테이징 사용자에게는 이 문제가 아예 발생하지 않아야 한다고 생각합니다.

3개의 좋아요

말씀하신 시나리오는 제가 겪었던 것과 다르지만, 문제의 근본 원인은 같을 수 있습니다:

  1. 사이트가 로그인 필수로 설정되어 있고, 카테고리는 비공개가 아닙니다.
  2. 카테고리 A에 사용자 지정 수신 이메일 주소를 설정하고 계정이 없는匿名用户의 이메일을 허용합니다 (추가로, 카테고리가 메일링 리스트를 미러링하도록 설정했습니다).
  3. 계정이 없는 사용자 X가 해당 이메일 주소로 이메일을 보냅니다.
    • 임시 사용자(staged user)가 생성됩니다.
    • 카테고리 A에 새 토픽이 생성됩니다.
  4. 등록된 사용자 Y가 카테고리 B에서 새 토픽을 생성하고, 카테고리 A의 토픽에 링크를 겁니다.
  5. 사용자 X가 user_linked 이메일 알림을 받습니다.

공개용 Discourse(로그인 불필요)에서는 이것이 의도된 동작임을 이해합니다. 하지만 비공개용 Discourse에서는 이것이 해가 될 가능성이 높습니다. 이 동작을 로그인 필수 설정에 의존하도록 변경하는 것이 어떨까요?

확인해 주셔서 감사합니다!

1개의 좋아요

다음으로 수정되었습니다:

그리고 stable에 백포트되었습니다: FIX: Staged users getting user_linked and user_quoted emails · discourse/discourse@6b20d52 · GitHub

6개의 좋아요

@brechtm, 이 보고서를 올려주셔서 감사합니다. 이제 수정되었습니다. 불편을 드려 죄송합니다.

4개의 좋아요

제 쪽에서 확인해 보니 문제가 해결된 것 같습니다. 감사합니다! 죄송해하지 마세요 :slight_smile:

5개의 좋아요