특정 외부 사용자에게 알림/이메일 전송을 중지/차단하는 방법
사용자를 무음 처리(Silence)하고 싶지 않습니다
이 경우 이메일 설정을 '수신 안 함’으로 변경하면 될까요?
네, 말씀하신 대로 그렇게 하면 모든 이메일 알림이 비활성화됩니다.
저는 가짜 이메일로 테스트 사용자를 만들 때 이렇게 합니다. 사용자 설정에서 모든 이메일 트리거를 비활성화하죠.
혹시 새 댓글이나 특정 카테고리/주제의 새 토픽에 대한 이메일을 받지 않게 하려는 거라면, 설정으로 가서 "감시 중"인 카테고리, 태그, 토픽을 모두 제거해야 합니다. 감시 중(Watched)으로 설정하면 알림이 발송되며, 첫 게시글 감시(watch first post)는 해당 토픽의 첫 게시글에만 이메일을 보냅니다.
네, 맞습니다. 그러면 이메일 알림을 전혀 받지 않게 되겠네요. 특정 유형만 차단하고 싶으셨다는 점을 이제야 알았네요.
이 방법은 주제(topic) 수준에서 “관심(Watching)”으로 설정된 특정 주제를 포함하지 않습니다. 그런 경우 사용자는 주제 자체 내에서 알림 수준을 변경해야 합니다(또는 관리자가 해당 계정을 대신하여 이를 수행할 수도 있습니다. 항목이 많다면 필요한 경우 우회 방법이 있습니다).
네, 그 상황이 정말 악몽이 될 수 있겠다는 생각이 드네요. 하지만 설정에서 태그와 카테고리를 관리할 수는 있습니다.
다만, 회원이 개별 주제를 관찰 대상으로 설정하지는 않을 거라고 기대합니다. impersonate 기능을 사용한다고 해도, 그건 꽤나 큰 작업이 될 것 같거든요. 그런데 주제를 일괄적으로 관찰 해제할 수 있는 명령줄 옵션이 있을지도 모르겠네요?
UI를 통해 실행할 수 있는 한 가지 방법은 해당 사용자의 신뢰 수준을 임시로 TL4로 올린 다음, 사용자 사용(impersonate)을 실행하는 것입니다. 이렇게 하면 일괄 작업을 통해 주제의 알림 수준을 대량으로 변경할 수 있습니다. (그 후 신뢰 수준을 원래대로 되돌리면 됩니다)
{YourSite}/latest?state=watching과 같이 '감시 중(Watching)'으로 설정된 항목만 표시되도록 필터링된 목록을 사용하는 것도 도움이 될 수 있습니다.
사용자를 사칭하고 있다면 필터링된 목록이 작동해야 합니다:
그렇지 않다면 데이터 탐색기 쿼리가 필요할 것 같습니다. 다음과 같은 쿼리라면 어떨까요:
-- [params]
-- user_id :user
SELECT tu.topic_id
FROM topic_users tu
JOIN topics t ON t.id = tu.topic_id
WHERE tu.user_id = :user
AND tu.notification_level = 3
AND t.archetype <> 'private_message'
AND t.deleted_at IS NULL

