# «unrevoke» 이메일 및 철회된 이메일의 미송 메시지 기록

**URL:** https://meta.discourse.org/t/unrevoke-email-and-logging-of-non-sent-messages-for-revoked-email/174209
**Category:** Support
**Created:** [12월 24, 2020, 4:35오후 UTC](https://meta.discourse.org/t/unrevoke-email-and-logging-of-non-sent-messages-for-revoked-email/174209 "2020-12-24T16:35:25Z")
**Posts on this page:** 9
**Page:** 1

<div class="post-metadata">

### Author: ![citizentools](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/citizentools/32/121368_2.png) [@citizentools](https://meta.discourse.org/u/citizentools)
#### Post date: [12월 24, 2020, 4:35오후 UTC](https://meta.discourse.org/t/unrevoke-email-and-logging-of-non-sent-messages-for-revoked-email/174209/1 "2020-12-24T16:35:25Z")

</div>

사용자와 함께 이메일 미수신 문제를 해결하던 중 해당 계정에 기록된 “이메일 취소”(revoke email) 작업을 발견했습니다. 이 작업을 취소하거나 되돌릴 수 있는 방법이 있을까요?

또한: 사용자의 이메일이 취소(revoke)된 경우, 이는 “이메일 발송”(Email Sent) 또는 “이메일 건너뛰기”(Email Skipped) 로그에 반영되나요? 아니면 “이메일 취소”(Revoke Email) 작업에만 기록되나요?

[What does ‘revoke email’ action mean in Logs?](https://meta.discourse.org/t/what-does-revoke-email-action-mean-in-logs/57096/8) 토론을 이어갑니다:

---

<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: [12월 24, 2020, 5:36오후 UTC](https://meta.discourse.org/t/unrevoke-email-and-logging-of-non-sent-messages-for-revoked-email/174209/2 "2020-12-24T17:36:58Z")

</div>

> [@citizentools](#):
>
> 사용자와 함께 이메일 미수신 문제를 해결하던 중 해당 사용자의 계정에서 기록된 ‘이메일 해지(revoke email)’ 작업을 발견했습니다. 이 작업을 취소하거나 되돌릴 수 있는 방법은 무엇인가요?

이메일 해지 작업은 사용자에게 보낸 여러 이메일이 바운스(전달 실패)될 때 트리거됩니다. 이메일이 바운스될 때마다 사용자의 '바운스 점수(bounce score)'는 사이트의 `soft bounce score` 또는 `hard bounce score` 설정 값만큼 증가합니다. 사용자의 바운스 점수가 사이트의 `bounce score threshold` 설정 값(기본값: 4)에 도달하면 이메일 해지 작업이 트리거됩니다.

사용자 관리 페이지로 이동하여 페이지 상단의 ‘Bounce Score’ 행에 있는 ‘Reset’ 버튼을 클릭하면 이 작업을 되돌릴 수 있습니다.

Reset 버튼을 클릭하지 않으면, `reset bounce score after days` 설정으로 지정된 기간이 지난 후 Discourse가 사용자의 바운스 점수를 자동으로 초기화합니다. 이 설정의 기본값은 30일입니다. 해당 기간이 지나면 Discourse는 사용자에게 다시 이메일을 보내기 시도합니다.

> [@citizentools](#):
>
> 사용자의 이메일이 해지된 경우, 이는 Email Sent 또는 Email Skipped 로그에 반영되나요? 아니면 Revoke Email 작업에만 기록되나요?

사이트의 `bounce score threshold`를 초과한 사용자에게 이메일이 전송되지 않으면, Skipped 로그에 항목이 추가됩니다. Skip Reason은 'Exceeded bounce\_score\_threshold’로 설정됩니다.

---

<div class="post-metadata">

### Author: ![citizentools](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/citizentools/32/121368_2.png) [@citizentools](https://meta.discourse.org/u/citizentools)
#### Post date: [12월 24, 2020, 6:52오후 UTC](https://meta.discourse.org/t/unrevoke-email-and-logging-of-non-sent-messages-for-revoked-email/174209/3 "2020-12-24T18:52:55Z")

</div>

감사합니다. 그렇다면 최근 User X에게 보낸 이메일 메시지의 Skipped 로그에 "Exceeded bounce\_score\_threshold"가 표시된다면, 그 사용자에 대해 이전에 “revoke email”(이메일 사용 중지) 조치가 이루어졌다고 가정할 수 있고, 그 반대도 성립하는 건가요?

상황은 이렇습니다. 제 사용자 중 한 명이 저희 Discourse 인스턴스에서 이메일을 받지 못하고 있습니다. 해당 사용자는 기술력이 뛰어나 스팸 폴더 등을 확인했다는 보고를 믿을 수 있습니다. 저는 꽤 오래전에 그의 bounce score를 초기화했지만, 오늘 그의 로그에서 Revoke Email 항목을 우연히 발견했습니다.

---

<div class="post-metadata">

### Author: ![Jonathan5](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/jonathan5/32/197134_2.png) [@Jonathan5](https://meta.discourse.org/u/Jonathan5)
#### Post date: [12월 24, 2020, 7:28오후 UTC](https://meta.discourse.org/t/unrevoke-email-and-logging-of-non-sent-messages-for-revoked-email/174209/4 "2020-12-24T19:28:54Z")

</div>

> [@simon](#):
>
> Discourse는 `reset bounce score after days` 설정에 지정된 기간이 지나면 사용자의 바운스 점수를 자동으로 초기화합니다. 이 설정의 기본값은 30일입니다. 해당 기간이 지나면 Discourse는 사용자에게 다시 이메일을 보내기 시도합니다.

흥미롭네요. 저는 이메일이 아직 비활성화되지 않은 사용자(예: Mailman의 작동 방식처럼)에 대해서는 바운스 점수가 초기화될 거라고 생각했습니다. 아마 이 설정을 10년 정도로 두는 것이 가장 가까운 방법일 것 같네요!

---

<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: [12월 24, 2020, 7:47오후 UTC](https://meta.discourse.org/t/unrevoke-email-and-logging-of-non-sent-messages-for-revoked-email/174209/5 "2020-12-24T19:47:01Z")

</div>

> [@Jonathan5](#):
>
> 메일가 아직 비활성화되지 않은 사용자(예: Mailman의 작동 방식)에 대해 바운스 점수가 초기화될 것이라고 가정했습니다.

제가 파악한 바로는, Discourse는 항상 사용자의 바운스 점수를 초기화한 후 해당 사용자에게 이메일을 다시 전송을 시도합니다. 일시적 바운스와 영구적 바운스 처리 방식의 유일한 차이점은, 영구적 바운스가 기본값 1(`soft bounce score` 사이트 설정에 의해 설정됨)이 아니라 기본값 2(`hard bounce score` 사이트 설정에 의해 설정됨)만큼 바운스 점수를 증가시킨다는 것입니다.

> [@Jonathan5](#):
>
> 가장 가까운 방법은 이 설정을 10년 정도로 두는 것일 것 같습니다!

그렇게 하면 해결되지만, 의도하지 않은 결과가 발생할 수 있습니다. 예를 들어, 최근 Gmail 장애로 인해 `bounce score threshold`를 초과한 사용자는 바운스 점수가 자동으로 초기화되기를 10년간 기다려야 할 것입니다.

---

<div class="post-metadata">

### Author: ![Jonathan5](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/jonathan5/32/197134_2.png) [@Jonathan5](https://meta.discourse.org/u/Jonathan5)
#### Post date: [12월 24, 2020, 9:30오후 UTC](https://meta.discourse.org/t/unrevoke-email-and-logging-of-non-sent-messages-for-revoked-email/174209/6 "2020-12-24T21:30:56Z")

</div>

Mailman 2는 바운스(bounce) 설정/임계값의 기본값이 더 높지만, 한 번 임계값에 도달하면 구독이 해지됩니다. 양쪽의 논리 모두 이해할 수 있습니다. 수정: 세부 사항은 기억나지 않지만, 어느 시점에 관리용 이메일에 회신할 기회가 주어지고, 이를 통해 바운스 점수가 초기화되어 목록에 남을 수 있다고 생각합니다.

Discourse를 셀프호스팅하는 많은 사람들이 Mailgun을 사용하는데, Mailgun은 "영구 실패(permanent fail)"가 한 번만 발생해도 해당 이메일 주소를 억지(suppression) 목록에 유지하므로, Discourse의 더 관대한 접근 방식을 무시하게 됩니다.

아마도 Mailgun API를 사용하여 해당 억지 목록을 가져오는 것이 가능하다고 하며, Discourse 설정과 동기화하는 것도 가능할 것 같습니다.

오늘 구글로부터 누군가가 제 비밀번호를 취득했다는 명확한 이메일을 받았습니다 — “구글은 다른 사람이 사용자의 비밀번호를 알고 있다는 것을 인지했습니다” — 그래서 이것이 "장애(outage)"와 관련이 있는지 궁금합니다…

---

<div class="post-metadata">

### Author: ![Jonathan5](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/jonathan5/32/197134_2.png) [@Jonathan5](https://meta.discourse.org/u/Jonathan5)
#### Post date: [12월 28, 2020, 9:31오전 UTC](https://meta.discourse.org/t/unrevoke-email-and-logging-of-non-sent-messages-for-revoked-email/174209/7 "2020-12-28T09:31:40Z")

</div>

> [@simon](#):
>
> 그렇게 하면 해결은 되겠지만, 의도하지 않은 결과가 발생할 수 있습니다. 예를 들어, 최근 Gmail 장애로 인해 `bounce score threshold`를 초과한 사용자는 bounce score가 자동으로 재설정되기를 10년 동안 기다려야 할 것입니다.

방금 이 링크를 발견했습니다: [Configure VERP to handle bouncing e-mails - #166](https://meta.discourse.org/t/handling-bouncing-e-mails/45343/166?u=jonathan5)

이것은 `bounce_score_threshold_deactivate` 설정이 제거된 것에 관한 것입니다. 이것이 실수였는지 궁금합니다. 기본 설정에 도달하기가 어려웠다면, 그 설정 값을 낮추면 되는 문제였습니다.

대규모 포럼에서 해당 설정을 제거한 것의 의도하지 않은 결과 중 하나는, 수년에 걸쳐 점점 더 많은 무효 주소로 이메일을 정기적으로 보내려는 시도인 것 같습니다. 이는 외부 서비스(예: 단일 `permanent fail` 바운스 후 주소를 억제하는 Mailgun)와의 문제나 IP 평판 문제로 이어질 수 있습니다.

현재로서는, 제가 오해하지 않는 한, Discourse는 이메일을 보내고 있다고 생각하지만, Mailgun은 억제 목록 때문에 해당 이메일을 보내기를 거부하고 있을 뿐입니다. 그리고 Discourse의 접근 방식과 Mailgun의 접근 방식을 동기화하는 것은 불가능합니다.

---

<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: [12월 28, 2020, 5:26오후 UTC](https://meta.discourse.org/t/unrevoke-email-and-logging-of-non-sent-messages-for-revoked-email/174209/8 "2020-12-28T17:26:41Z")

</div>

> [@Jonathan5](#):
>
> 큰 규모의 포럼에서 해당 항목을 제거한 결과, 수년에 걸쳐 점점 더 많은 유효하지 않은 주소로 정기적으로 이메일을 보내려는 것이 의도치 않은 결과로 나타나는 것 같습니다.

그 부분에 대해 잊고 있었습니다. `bounce_score_threshold_deactivate` 설정이 Discourse가 유효하지 않은 주소로 이메일을 보내려는 시도를 방지하는 데 제대로 작동했는지 확실하지 않습니다. 문제는 사용자가 `바운스 점수 임계값(bounce score threshold)`에 도달하면, `바운스 점수 리셋까지 대기일(reset bounce score after days)` 설정에 지정된 기간이 지나기까지 Discourse가 해당 사용자에게 이메일을 보내지 않는다는 점입니다. 그 시점이 되면 사용자의 바운스 점수가 초기화되고 이 과정이 다시 반복됩니다.

이에 대한 최선의 해결책이 무엇인지 확신이 서지 않습니다. 제 이해가 맞다면, 시간이 지날수록 Discourse 사이트가 점점 더 많은 유효하지 않은 주소로 이메일을 보내려는 시도를 하게 될 것으로 보입니다.

---

<div class="post-metadata">

### Author: ![Jonathan5](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/jonathan5/32/197134_2.png) [@Jonathan5](https://meta.discourse.org/u/Jonathan5)
#### Post date: [12월 28, 2020, 6:25오후 UTC](https://meta.discourse.org/t/unrevoke-email-and-logging-of-non-sent-messages-for-revoked-email/174209/9 "2020-12-28T18:25:04Z")

</div>

이 문제는 최소 두 가지 측면이 있습니다. 하나는 이메일 발신자(예: localhost)가 이 방식을 따를 것이라고 가정할 때, Discourse에 좋은 정책이 무엇인지입니다. 다른 하나는 이 방식을 따르지 않는 이메일 전송 서비스(예: Mailgun)와 어떻게 동기화할 것인가입니다.

Discourse에는 이미 "이메일 주소를 확인해 주세요. 해당 주소로 전송하는 데 문제가 발생했습니다."라는 유사한 메시지가 존재합니다. 아마도 Discourse는 반송되는 이메일을 비활성화하는 더 적극적인 접근 방식과, 이메일 전송 불가에 대한 제거할 수 없는 사이트 공지 기능이 필요할 것입니다.

외부 발신자와의 동기화는 더 어려울 것입니다. Mailgun은 API를 통해 억제 목록(suppression list)을 가져올 수 있다고 말하지만, ~~API를 통해 주소를 삭제할 수도 있는지 아직 알지 못합니다~~. ~~양쪽 모두를 수행할 수 있다면~~ Discourse는 주소가 억제 목록에 들어오는 즉시 해당 주소를 비활성화하고, 관리자나 사용자가 Discourse 내에서 수동으로 조치를 취할 때(예: 확인 이메일에 답장) 억제 목록에서 해당 주소를 제거할 수 있습니다. 이 문제와 연결된 또 다른 문제는 각 제공업체마다 규칙이 다를 가능성이 높다는 것입니다.

수정: Mailgun API를 사용하여 억제 목록에서 이메일 주소를 삭제할 수 있으므로 위의 취소선 표시를 추가했습니다: [https://documentation.mailgun.com/en/latest/api-suppressions.html#delete-a-single-bounce](https://documentation.mailgun.com/en/latest/api-suppressions.html#delete-a-single-bounce)
