이메일로 답글 작성 시 짧은 답글에 대한 오류 메시지가 잘못 표시됩니다

이메일로 "testing reply by e-mail"과 같이 너무 짧은 답장을 보냈을 때, 다음과 같은 이메일을 받아볼 수 있습니다:

죄송합니다. [“discoursereplies+redacted.org”]로 보낸 이메일(제목: Re: 포럼 스레드 제목)이 처리되지 않았습니다.

여러 개의 이메일 주소를 사용하나요? 다른 이메일 주소에서 답장을 보낸 것은 아닌가요? 이메일 답장은 답장 시에도 동일한 이메일 주소를 사용해야 합니다. 또는 이메일의 Message-ID 헤더가 수정되었을 수도 있습니다.

하지만 여러 줄로 된 긴 답장은 정상적으로 처리됩니다.

따라서 이 오류 메시지는 잘못된 것입니다.

이런 경우 더 나은 오류 메시지를 제공해 주실 수 있을까요?

최소 메시지 길이를 설정할 수 있나요? 포럼에서의 답장과 이메일을 통한 답장 사이에 다른 설정이 있나요?

Confused by Error Message From Reply-by-Email 와 유사하지만 다른 문제입니다.

음, @tshenry 이 재현할 수 있을까요?

즉시 재현이 어렵습니다.

최소 글자 수 사이트 설정이 기본값인 20으로 설정되어 있는 https://try.discourse.org 에서 테스트를 수행했습니다.

사용자 A가 새 주제를 생성한 후, 사용자 B가 해당 주제에 답글을 남겼습니다. 사용자 A가 이메일을 받았고, 저는 이메일을 통해 한 단어인 "Test"라는 답글을 보냈습니다:

그 직후 적절한 메시지가 포함된 이메일을 받았습니다:

@adrelanos 추가 재현 단계를 제공해 주실 수 있나요? 받으신 메시지가 어떤 식으로든 유효했을 가능성은 없나요? 또한 최신 버전의 Discourse를 사용하고 계신지 확인해 주시겠습니까?

안정 버전입니다. 2.6.6 (테스트 완료되지 않은 버전이 아닙니다.) 이것이 차이를 만드나요?

확실히 차이를 만들 것이라고 단정할 수는 없지만, 안정판에 버그가 있었다가 수정되었는데 그 수정 사항이 하위 버전으로 되돌려지지 않은 경우일 수도 있습니다. 가능하다면, 최소한 최신 베타 버전으로 업데이트를 시도해 보시는 것을 권장합니다.

그 외로, 다음과 같은 질문이 있습니다:

일반적인 시나리오를 통해 문제를 재현할 수 없으므로, 진행을 위해 조금 더 정보가 필요합니다.

이전에도 PostgreSQL 13 update, Restore problem: relation "theme_fields" does not exist 및 https://meta.discourse.org/t/how-to-backup-and-restore-a-whole-var-discourse-app-folder/152598/15에서 문제가 있었습니다. 이제 더 느리지만 안정적인 브랜치를 서비스로 제공받게 되어 매우 기쁩니다. :slight_smile:

현재 2.7 버전을 사용 중이실 것 같습니다. 2.7이 안정적 브랜치로 마이그레이션될 때까지 기다렸다가 다시 보고드리겠습니다.

추가적인 재현 단계를 제공하실 수 있나요?

min post length(최소 게시글 길이)는 2로 설정되어 있습니다.

delete rejected email after days(거절된 이메일 삭제까지 걸리는 일수)는 여전히 기본값인 90입니다.

나 자신의 메시지에 "OK"라고 답장하는 기능은 이제 정상 작동합니다.

다른 사용자의 메시지에 "OK"라고 답장했을 때 이제 다음 내용이 표시됩니다.

죄송합니다. [“discoursereplies+redacted@redacted.redacted”](제목: Re: [redacted] [redacted] redacted)로 보낸 이메일 메시지가 작동하지 않았습니다.

우리는 원래 알림에 대한 답장만 90일 동안만 접수합니다. 대화를 계속하시려면 토픽을 방문해 주세요.

하지만 해당 메시지는 불과 5분 정도밖에 지나지 않은 것이었습니다.

다른 사용자의 게시글에 "This is a longer test reply by e-mail. Please ignore."라는 텍스트로 이메일을 통해 답장했을 때 아무 일도 일어나지 않으며, 로그에도 아무것도 표시되지 않습니다. 거절 이메일도 받지 못했습니다.

받은 메시지가 어떤 식으로든 유효한 것이었을까요?

"유효한 것이었다"는 것이 무슨 뜻인가요?

이것은 서버 시계나 설치에 문제가 있다는 것을 의미합니다. 표준 기본 설치인가요?

이는 서버의 시계나 설치 환경에 문제가 있다는 것을 의미합니다.

그렇지 않다고 생각합니다. 방금 확인해 보았습니다. 로컬 컴퓨터 시간과 서버 시간은 UTC 기준으로 날짜, 시간, 분이 모두 일치했습니다. 거의 초 단위까지도 같았습니다(SSH를 통해 측정하기는 어렵습니다).

이것이 표준 기본 설치인가요?

네. Docker 설치 방식을 사용했습니다. 권장 사항에서 벗어나고 싶지 않습니다.

discourse를 유지 관리해 주셔서 감사합니다.

향후를 위해 간단히 요약하자면:

  1. OP(원문)의 문제는 너무 짧은 답글을 보냈는데, “post too short” 응답 대신 “bad destination address” 오류 응답을 받은 것입니다. 다음 내용은 사실일 수 없었습니다:

    이메일 주소를 하나 이상 사용하나요? 다른 이메일 주소에서 답글을 보냈나요? 이메일 답글은 답글을 보낼 때 동일한 이메일 주소를 사용해야 합니다. 또는 이메일의 Message-ID 헤더가 수정되었을 수 있습니다.

  2. 다른 예시에서는 너무 짧은 답글을 사용자에게 보냈고 “old destination” 오류 응답을 받았습니다: “We only accept replies to original notifications for 90 days. Please visit the topic to continue the conversation”. 답글을 달았던 게시물이 단 5분밖에 되지 않았기 때문에 이 내용 역시 사실일 수 없었습니다.

답글이 너무 짧았던 두 경우 모두 잘못된 오류 메시지가 전송되었습니다. 이렇게 정리하는 것이 정확한가요?

좋습니다! 업데이트로 상황이 해결되는지 매우 궁금합니다. 해결되지 않으면 알려주세요.

Taylor (Discourse Meta를 통해):

이 내용이 정확한가요?

네, 맞습니다.

2.7.3에서는 더 이상 해당 문제가 발생하지 않지만, 대신 이제 다음과 같은 오류가 표시됩니다.

  1. 여러 개의 이메일 주소를 사용합니까? 다른 이메일 주소에서 답장을 보냈습니까? 이메일 답장은 답장 시 동일한 이메일 주소를 사용해야 합니다. 또는 이메일의 Message-ID 헤더가 수정되었을 수 있습니다.

내가 답장하려는 게시글 뒤에 다른 답장들이 이루어진 경우 발생하는 것 같습니다.

이 문제는 디버깅하기가 어려운 것 같습니다(사용자 오류, From 대신 Reply-To에 답장하는 경우 - 이 경우에는 그렇게 하지 않았습니다 / 메일 서버 문제와/또는 Discourse 버그). 따라서 디버깅을 용이하게 하기 위해 다음과 같은 기능 요청을 제안했습니다:
Reply with debug info to rejected e-mails

이것은 body min entropy와 같은 다른 짧은 게시글 방지 안전장치에 해당한다는 의미입니다. 이 안전장치는 AAAAAAAAAAAAAAAAAAAAAAAAAAAA와 같은 게시글을 차단하는 데 사용되며, 사용자 정의 오류 메시지가 없습니다.

구체적인 재현 단계를 알고 계신가요? 오류를 100% 재현할 수 있나요?

이것은 Reply with debug info to rejected e-mails 의 경우에 해당합니다.

항상 재현되지는 않습니다. 이제 이메일 답글 기능을 많이 사용해보고, 재현 가능한 지시사항을 추가로 제공해 보겠습니다.
이메일이 거부되려면 여러 번의 답글이 필요할 수도 있습니다. 또는 시간에 따라 달라질 수도 있습니다. 오래된 메시지는 거부될 가능성이 더 높지만, disallow reply by email after days는 이미 0으로 설정되어 있습니다.