# 감시 중인 카테고리에서 이메일을 받지 못함

**URL:** <https://meta.discourse.org/t/members-not-receiving-emails-from-watched-category/314500>\
**Category:** Support\
**Created:** [6월 29, 2024, 11:55오전 UTC](https://meta.discourse.org/t/members-not-receiving-emails-from-watched-category/314500 "2024-06-29T11:55:07Z")\
**Posts on this page:** 15\
**Page:** 1

<div class="post-metadata">

**Author:** ![mononym](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/mononym/32/566879_2.png) [@mononym](https://meta.discourse.org/u/mononym)\
**Post date:** [6월 29, 2024, 11:55오전 UTC](https://meta.discourse.org/t/members-not-receiving-emails-from-watched-category/314500/1 "2024-06-29T11:55:07Z")

</div>

> [@JammyDodger](#):
>
> 기본값은 변경되지만, 사용자가 의도적으로 선택한 내용은 덮어쓰지 않습니다.

안녕하세요. 기존 사용자가 의도적으로 선택한 내용을 덮어쓸 수 있는 방법이 있을까요?

`UserOption.update_all(default_categories_watching: <id>)` 와 `UserOption.update_all(watched_categories: <id>)` 를 시도해 보았지만, 이들은 사용자 옵션이 아닙니다…

수정 및 해결 방법: `User.all.each do |user| CategoryUser.batch_set(user, :watching, [<id>]) end`

---

<div class="post-metadata">

**Author:** ![JammyDodger](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/jammydodger/32/254611_2.png) [@JammyDodger](https://meta.discourse.org/u/JammyDodger)\
**Post date:** [7월 1, 2024, 9:37오전 UTC](https://meta.discourse.org/t/members-not-receiving-emails-from-watched-category/314500/2 "2024-07-01T09:37:21Z")

</div>

레일즈 콘솔(그리고 API)을 통해 이를 수행할 수는 있지만, 그렇게 해야 하는지 신중하게 고려해 보시는 것이 좋습니다. 사용자가 의도적으로 특정 카테고리(또는 태그나 토픽)를 '감시’하거나 '음소거’하도록 선택했다면, 그 선택을 무시하는 것은 바람직하지 않을 가능성이 큽니다. 또한 사용자가 원상태로 되돌릴 수 있으므로, 이를 통해 얻을 수 있는 이점이 없을 수도 있습니다.

---

<div class="post-metadata">

**Author:** ![mononym](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/mononym/32/566879_2.png) [@mononym](https://meta.discourse.org/u/mononym)\
**Post date:** [7월 1, 2024, 10:40오전 UTC](https://meta.discourse.org/t/members-not-receiving-emails-from-watched-category/314500/3 "2024-07-01T10:40:57Z")

</div>

답변해 주셔서 감사합니다. 전적으로 동의합니다. 다만 저희 경우, 제가 여기에 설명한 현재 문제를 해결하기 위한 것입니다: [Favor activity summary posts from certain category](https://meta.discourse.org/t/favor-activity-summary-posts-from-certain-category/310498?u=mononym).

아이디어는 새로운 기본 설정(특정 카테고리 관찰)을 되돌린 후, 사람들이 원하는 대로 설정을 변경할 수 있도록 하는 것입니다.

방금 위에서 언급한 `User.all.each do |user| CategoryUser.batch_set(user, :watching, [<id>]) end` 명령이 모든 사용자의 설정을 변경하는 데 제대로 작동하지 않는 것 같습니다. 이유가 무엇일까요? 더 나은 방법은 새로운 추적 설정을 기존 사용자 추적 설정에 **추가** 하는 것입니다…

P.S. 저희는 작은 커뮤니티이고, 설정을 조정할 시간을 낸 사람은 그중에서도 훨씬 더 적은 비율이라는 것을 알고 있습니다 (😉

---

<div class="post-metadata">

**Author:** ![JammyDodger](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/jammydodger/32/254611_2.png) [@JammyDodger](https://meta.discourse.org/u/JammyDodger)\
**Post date:** [7월 1, 2024, 10:51오전 UTC](https://meta.discourse.org/t/members-not-receiving-emails-from-watched-category/314500/4 "2024-07-01T10:51:33Z")

</div>

> [@mononym](#):
>
> 아이디어는 새로운 기본 설정(특정 카테고리 관찰)을 되돌린 다음, 사람들이 원하는 대로 변경할 수 있도록 하는 것입니다.

> [@mononym](#):
>
> P.S. 우리는 아주 작은 커뮤니티이고, 설정을 조정할 시간을 낸 사람은 그중에서도 훨씬 적은 비율이라는 것을 알고 있습니다 (😉

알림 수준에서 카테고리를 특별히 설정하지 않은 사용자에 대해, `default category watching`을 재설정하고 이를 과거 데이터에 적용하면 해당 설정이 정상 수준으로 리셋되어야 합니다.

사용자 수가 적다면, rails 콘솔보다 UI나 API를 사용하는 것이 더 안전한 방법일 수 있습니다. 얼마나 많은 사용자에 대해 이야기하고 있나요?

---

<div class="post-metadata">

**Author:** ![mononym](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/mononym/32/566879_2.png) [@mononym](https://meta.discourse.org/u/mononym)\
**Post date:** [7월 1, 2024, 10:59오전 UTC](https://meta.discourse.org/t/members-not-receiving-emails-from-watched-category/314500/5 "2024-07-01T10:59:39Z")

</div>

이해를 돕기 위해, 해당 카테고리는 _Announcements_이며 그 ID는 22입니다.

> [@JammyDodger](#):
>
> 알림 수준에서 카테고리를 특별히 설정하지 않은 사용자의 경우, `default category watching`을 재설정하고 이를 과거 데이터에 적용하면 해당 설정이 정상 수준으로 리셋되어야 합니다.

저도 명령어를 시도하기 전에 정확히 이렇게 해보았습니다. 하지만 두 가지를 모두 수행한 후에도 _Announcements_에 새 게시글이 올라가면 일부 사용자만 이메일을 받는 상태입니다.  
이전에 링크된 관련 이슈에서 설명된 바와 같이 _digest_ 이메일에 “사소한” 활동(즉, _Announcements_ 게시글 없음)만 포함되어 있어, 사용자가 이메일 알림을 구독 해제했을 가능성이 있습니다.

> [@JammyDodger](#):
>
> 인원이 적다면 rails 콘솔보다는 UI나 API를 사용하는 것이 더 안전한 선택일 수 있습니다. 얼마나 많은 사람에 대한 이야기인가요?

60명

---

<div class="post-metadata">

**Author:** ![JammyDodger](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/jammydodger/32/254611_2.png) [@JammyDodger](https://meta.discourse.org/u/JammyDodger)\
**Post date:** [7월 1, 2024, 11:07오전 UTC](https://meta.discourse.org/t/members-not-receiving-emails-from-watched-category/314500/6 "2024-07-01T11:07:54Z")

</div>

데이터 탐색기가 설치되어 있나요? 그렇다면, 올바른 추적 및/또는 이메일 설정이 없는 사용자가 몇 명인지 확인할 수 있는 쿼리가 있나요?

---

<div class="post-metadata">

**Author:** ![mononym](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/mononym/32/566879_2.png) [@mononym](https://meta.discourse.org/u/mononym)\
**Post date:** [7월 1, 2024, 11:58오전 UTC](https://meta.discourse.org/t/members-not-receiving-emails-from-watched-category/314500/7 "2024-07-01T11:58:11Z")

</div>

> [@JammyDodger](#):
>
> [데이터 탐색기](https://meta.discourse.org/t/32566?silent=true)를 설치해 두셨나요?

좋은 아이디어네요. 시간이 좀 더 나면 해볼게요!

즉각적인 노력은 적지만, 모든 사용자의 필요한 매개변수를 초기화하는 레일스 스크립트도 있으면 좋겠습니다.

---

<div class="post-metadata">

**Author:** ![JammyDodger](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/jammydodger/32/254611_2.png) [@JammyDodger](https://meta.discourse.org/u/JammyDodger)\
**Post date:** [7월 1, 2024, 12:30오후 UTC](https://meta.discourse.org/t/members-not-receiving-emails-from-watched-category/314500/8 "2024-07-01T12:30:20Z")

</div>

해결책을 마련하기 전에 조금 더 자세한 정보가 필요합니다. `category_users` 테이블은 활성 카테고리 알림 수준에 대한 기록만 보관하므로, 사용자가 해당 설정을 가지고 있지 않으면 rails 콘솔을 통해 수정할 데이터가 테이블에 존재하지 않습니다. (예를 들어, `default categories watching` 관리자 설정에 `#contribute:site-feedback`을 추가하면 각 사용자에게 `category_users` 테이블에 기록이 추가되고, 설정을 초기화하면 해당 기록이 다시 삭제됩니다.)

---

<div class="post-metadata">

**Author:** ![mononym](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/mononym/32/566879_2.png) [@mononym](https://meta.discourse.org/u/mononym)\
**Post date:** [7월 1, 2024, 7:36오후 UTC](https://meta.discourse.org/t/members-not-receiving-emails-from-watched-category/314500/9 "2024-07-01T19:36:54Z")

</div>

확인해 보았는데, `User.all.each do |user| CategoryUser.batch_set(user, :watching, [22])` 실행 후 모든 사용자의 추적 설정이 원하는 카테고리(22 | Announcements)를 관찰(watch)하도록 변경되었습니다. 해당 쿼리는 모든 사용자를 나열합니다:

```plaintext
SELECT *
FROM category_users 
WHERE category_id = '22' AND notification_level = '3'

```

그리고 이 쿼리는 사용자 1명만 나열합니다:

```plaintext
SELECT *
FROM user_options uo
WHERE uo.email_level = '2'

```

그런데 왜 카테고리 22 "Announcements"에 새 게시글이 올라와도 많은 사용자에게 이메일이 전송되지 않는지 궁금합니다. 🤔

P.S. SQL 쿼리를 이것저것 시도해 보고 있지만, 두 쿼리를 어떻게 조인(join)해야 할지 모르겠습니다.

---

<div class="post-metadata">

**Author:** ![mononym](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/mononym/32/566879_2.png) [@mononym](https://meta.discourse.org/u/mononym)\
**Post date:** [7월 15, 2024, 8:05오전 UTC](https://meta.discourse.org/t/members-not-receiving-emails-from-watched-category/314500/10 "2024-07-15T08:05:39Z")

</div>

안녕하세요. 아직 해결책을 찾지 못했습니다. 관심 있는 주제의 게시글 알림 메일을 받기 위해 설정해야 할 사용자 환경 설정이 뭔지 이해가 되지 않습니다. 혹시 아이디어가 있으신가요? 감사합니다!

---

<div class="post-metadata">

**Author:** ![mononym](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/mononym/32/566879_2.png) [@mononym](https://meta.discourse.org/u/mononym)\
**Post date:** [9월 26, 2024, 2:57오후 UTC](https://meta.discourse.org/t/members-not-receiving-emails-from-watched-category/314500/11 "2024-09-26T14:57:02Z")

</div>

Hi @JammyDodger

혹시 모르니 말씀드리는데, 저는 여전히 이 문제를 조사하고 해결책을 찾고 있습니다. 특정 카테고리(‘Announcements’)를 기본 설정으로 구독하고 있지만 새 게시물에 대한 이메일 알림을 받지 않는 사용자 중 한 명의 설정을 분리(isolate)하여 확인해 보았습니다:

| user | mailing\_list\_mode | email\_digests | external\_links\_in\_new\_tab | enable\_quoting | dynamic\_favicon | automatically\_unpin\_topics | digest\_after\_minutes | auto\_track\_topics\_after\_msecs | new\_topic\_duration\_minutes | last\_redirected\_to\_top\_at | email\_previous\_replies | email\_in\_reply\_to | like\_notification\_frequency | mailing\_list\_mode\_frequency | include\_tl0\_in\_digests | notification\_level\_when\_replying | theme\_key\_seq | allow\_private\_messages | homepage | theme\_ids | hide\_profile\_and\_presence | text\_size\_key | text\_size\_seq | email\_level | email\_messages\_level | title\_count\_mode\_key | enable\_defer | timezone | enable\_allowed\_pm\_users | dark\_scheme | skip\_new\_user\_tips | color\_scheme | default\_calendar | oldest\_search\_log\_date | chat\_enabled | only\_chat\_push\_notifications | chat\_sound | dismissed\_channel\_retention\_reminder | dismissed\_dm\_retention\_reminder | bookmark\_auto\_delete\_preference | ignore\_channel\_wide\_mention | chat\_email\_frequency | enable\_experimental\_sidebar | seen\_popups | chat\_header\_indicator\_preference | sidebar\_link\_to\_filtered\_list | sidebar\_show\_count\_of\_new\_items | watched\_precedence\_over\_muted | chat\_separate\_sidebar\_mode | topics\_unread\_when\_closed | show\_thread\_title\_prompts |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| JohnDoe | false | true | true | true | false | true | 10080 | 240000 | 2880 | 2023-06-13T08:25:13.000Z | 1 | false | 1 | 1 | true | 2 | 0 | true | NULL | {} | false | 0 | 0 | 1 | 1 | 0 | false | Europe/Somwhere | false | NULL | false | NULL | 0 | NULL | true | NULL | NULL | NULL | NULL | 3 | NULL | 1 | false | {1,2,3,4,5} | 0 | false | false | NULL | 0 | true | true |

‘Announcements’ 카테고리를 구독하는 사용자를 조회했을 때 이 사용자의 레코드(row)가 다음과 같기 때문에, 왜 이런 문제가 발생하는지 정말로 이해가 가지 않습니다:

| id | category | user | notification\_level | last\_seen\_at |
| --- | --- | --- | --- | --- |
| 123 | Announcements | JohnDoe | 3 | NULL |

제가 놓치고 있는 다른 설정이 있을까요? 혹시 사용자가 알림 이메일 중 하나에서 구독 취소(unsubscribe)를 클릭하여 이메일 설정이 변경된 것일까요?

감사합니다!

---

<div class="post-metadata">

**Author:** ![simon](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/simon/32/339122_2.png) [@simon](https://meta.discourse.org/u/simon)\
**Post date:** [9월 26, 2024, 6:22오후 UTC](https://meta.discourse.org/t/members-not-receiving-emails-from-watched-category/314500/12 "2024-09-26T18:22:57Z")

</div>

> [@mononym](#):
>
> 사용자가 알림 이메일 중 하나에서 구독을 취소했는데, 이로 인해 이메일 설정이 변경되었을 수도 있나요?

알림 이메일의 “구독 취소” 링크를 클릭하면 사용자가 알림 설정을 변경할 수 있는 페이지로 이동합니다. 예를 들면 다음과 같습니다:

 ![20240926_11h03m33s_grim](https://global.discourse-cdn.com/meta/original/4X/2/4/7/247677c2c85d7ec30251541477bee39dd345e126.png)

사용자가 “\<category\_name\> 카테고리의 모든 주제 보기 중지” 또는 “Discourse에서 이메일을 보내지 마세요” 옵션을 선택했다면, 사용자의 설정 페이지에서 해당 변경 사항을 확인할 수 있습니다. 카테고리 목록에서 해당 카테고리가 삭제되었거나, 이메일 페이지의 모든 설정이 "절대 보내지 않음"으로 변경되어 있을 것입니다.

사용자가 “이 주제 보기 중지” 옵션을 선택한 경우 변경 사항을 확인하기가 더 어렵습니다. 이 경우, 관리자 페이지에서 해당 사용자로 위장하여 주제를 방문한 후, 해당 주제에 대한 알림 수준이 "주시 중(watching)"에서 "추적(tracking)"으로 변경되었는지 확인해 보세요. 또한 Rails 콘솔을 통해 해당 주제에 대한 사용자의 알림 수준 정보도 가져올 수 있습니다:

이 부분에 너무 몰두하기 전에, 사이트의 “이메일 건너뜀 로그(Skipped Email Logs)” 페이지로 가세요. 관리자 사이드바에서 해당 페이지로 이동할 수 있습니다. 페이지 상단의 “수신 주소(To Address)” 필드에 사용자의 이메일 주소를 입력하면, 해당 이메일이 사용자에게 발송되지 않은 이유에 대한 세부 정보를 확인할 수 있습니다.

---

<div class="post-metadata">

**Author:** ![mononym](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/mononym/32/566879_2.png) [@mononym](https://meta.discourse.org/u/mononym)\
**Post date:** [11월 12, 2024, 9:33오전 UTC](https://meta.discourse.org/t/members-not-receiving-emails-from-watched-category/314500/13 "2024-11-12T09:33:52Z")

</div>

답변 감사합니다.

건너뜀 이메일 섹션을 확인해 보았습니다. 해당 섹션에는 “최근 사용자 활동 감지됨”, “사용자 자신의 게시물에 대한 메일링 리스트 알림 비활성화”, “바운스 점수 임계값 초과” 항목만 있습니다.

다음 중 하나의 방식으로 모든 사용자의 설정을 변경할 수 있는지 궁금합니다:

- 모든 사용자의 설정을 마치 방금 가입한 것처럼 변경.
- 또는: 새로운 테스트 사용자를 생성하고, 해당 설정을 복사하여 기존 모든 사용자에게 적용.

---

<div class="post-metadata">

**Author:** ![simon](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/simon/32/339122_2.png) [@simon](https://meta.discourse.org/u/simon)\
**Post date:** [11월 12, 2024, 7:25오후 UTC](https://meta.discourse.org/t/members-not-receiving-emails-from-watched-category/314500/14 "2024-11-12T19:25:24Z")

</div>

> [@mononym](#):
>
> 다음 중 하나의 방식으로 모든 사용자의 설정을 변경할 수 있는지 궁금합니다:
> 
> - 모든 사용자의 설정을 마치 방금 가입한 것처럼 변경하는 것.
> - 또는: 새로운 테스트 사용자를 생성하고 이 설정을 복사하여 기존 모든 사용자에게 적용하는 것.

"기본 카테고리 구독"이라는 사이트 설정이 있습니다. 이 설정을 변경하면 과거 데이터에도 적용할지 묻는 옵션이 제공됩니다. 해당 옵션을 선택하면 해당 카테고리에 대해 설정 페이지에서 명시적으로 설정을 변경한 사용자를 제외한 모든 사용자의 환경설정이 업데이트됩니다. 이것이 바로 회피하려는 문제인 것 같습니다. Rails 콘솔을 통해 처리할 수도 있지만, 가능한 한 그 접근 방식을 피하는 것이 좋습니다.

대신 공지사항을 위한 새 카테고리를 생성하고, 이 카테고리를 사이트의 “기본 카테고리 구독” 설정에 추가할 수 있습니다. 그런 다음 기존 공지사항 카테고리에서 새 카테고리로 주제를 이동하여 사이트를 정리할 수 있습니다. 카테고리 이름을 "announcements"로 유지하려면, 먼저 원래의 “announcements” 카테고리를 다른 이름으로 변경하는 것부터 시작하세요. 이 방법은 다소 임시방편(hack)에 가깝지만, Rails 콘솔을 건드리지 않고 문제를 해결하는 방법입니다.

---

<div class="post-metadata">

**Author:** ![system](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/system/32/443519_2.png) [@system](https://meta.discourse.org/u/system)\
**Post date:** [12월 12, 2024, 7:25오후 UTC](https://meta.discourse.org/t/members-not-receiving-emails-from-watched-category/314500/15 "2024-12-12T19:25:46Z")

</div>

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.
