Group.incoming_email이 Group.email_username으로 설정되지 않으면 IMAP 동기화가 새 사용자를 대기 상태로 유지합니다

IMAP 동기화를 테스트하는 동안 IMAP 계정에서 가져오는 과정에서 Group.email_username을 위한 단계적(staged) 사용자가 생성되었습니다.

무슨 일이 일어났는지 이해하려고 노력하던 중, Group.find_by_email이 Group.email_username을 고려하지 않는다는 사실을 알게 되었습니다. 따라서 이 값을 포함하려면 Group.incoming_email에 해당 값을 설정해야 합니다.

재현 단계:

  • IMAP 동기화 활성화
  • 그룹의 이메일 동기화 옵션을 구성하되 Group.incoming_email은 설정하지 않음
  • Group.email_username으로 이메일 전송
1개의 좋아요

IMAP은 아직 조금 더 개발이 필요한 상태인 것 같습니다, @sam?

이것이 합리적으로 지원되어야 합니다. 메타에서 프로덕션 환경으로 사용하고 있기 때문입니다.

@martin 이 보고서를 한번 빠르게 확인해 주시겠습니까?

@thoka 님, 감사합니다. 이 문제를 확인해 보았습니다. Group.find_by_email에 email_username을 추가해야 한다는 점에서는 동의합니다. 하지만 이번 사례에서 그룹 이메일 사용자가 스테이지된(staged) 상태가 된 직접적인 원인은 아닙니다. 실제로 이 문제는 수신기(receiver)에서 새로 생성된 토픽에 다른 주소를 추가하는 단계에서 발생합니다. 여기서 핵심은 should_invite?입니다.

이 함수는 결국 이메일을 group_incoming_emails_regex와 비교합니다:

이 정규식(또는 다른 정규식)에서 email_username과도 비교하도록 수정해야 할 것 같습니다. 지금까지 그룹의 스테이지된 사용자가 생성되는 것이 문제라고 생각하지는 않았지만, 조금 지저분하고 불필요해 보이는 것은 이해할 수 있습니다. 이 부분을 수정할 때, 현재 제가 알지 못하는 중요한 이유(예: 의도된 동작)로 인해 그룹의 스테이지된 사용자가 생성되지 않도록 하는지 확인하기 위해 테스트를 수행해야 합니다.

5개의 좋아요

이 문제는 FEATURE: Use group SMTP settings for sending user notification emails (initial) - Pull Request #13220%EC%97%90%EC%84%9C - discourse/discourse - GitHub 수정되었으며, 최근 그룹 이메일 설정 UI가 대대적으로 개편되었습니다. 다만 IMAP는 여전히 알파 단계에 있으므로, 해당 기능을 사용할 때는 위험을 감수해야 합니다.

3개의 좋아요