메일링 리스트에서 약 600개의 이메일 주소를 Discourse로 가져오는 것을 검토하고 있습니다. 목표는 Announcements 카테고리를 기본적으로 모든 사용자에게 구독(watch) 상태로 설정하여, 메일링 리스트의 주요 기능을 대체하는 효과를 내는 것입니다.
제 이해로는, 가져오기 과정(스크립트가 관여되며 개발자의 도움이 필요할 것 같습니다)에서 모든 가져온 사용자에게 Announcements 카테고리를 ‘Watching’ 상태로 강제 설정할 수 있다고 합니다. 이렇게 하면 사용자가 수동으로 구독을 해제하지 않는 한 모든 게시글에 대해 이메일을 definitely 수신하게 됩니다. 맞습니까?
더 명확하지 않은 점은 가져온 사용자들의 사용자 경험입니다. 각 사용자에게 계정이 생성되겠지만, 비밀번호를 설정하기 전까지는 로그인할 수 없다고 추정됩니다. 그리고 사이트에 처음 방문할 때 Discourse가 비밀번호 설정을 요구하게 되겠죠? 맞습니까?
그렇다면 사용자가 아예 비밀번호를 설정하지 않는 경우는 어떻게 될까요? (대부분은 이제 Mailman 계정을 가지고 있다는 사실을 인지하지 못하고 있으며, 별도의 계정을 만들어야 한다는 점에 대해 반발이 있었습니다. 한숨.) 사용자가 사이트를 방문하지도, 로그인하지도 않는다면, Announcements 카테고리의 주제 및 게시글에 대한 이메일을 여전히 수신할 수 있을까요?
이 작업을 수행해 보신 분들에게 질문드립니다. 가져오기 이후 어떤 종류의 지원 이슈를 처리해야 했나요?
이 주제에 대해 나보다 더 잘 아는 분들이 여기 계실 수 있지만, u.activate(); 명령을 실행하기 때문에 이미 완전히 활성화된 상태이며, 이메일을 통해 하는 유일한 작업은 아무도 모르는 초기 랜덤 문자열 비밀번호를 변경하는 것뿐이라고 생각합니다.
비활성 사용자는 결국 이메일을 더 이상 받지 않게 된다는 개념이 있지만, "자동 관찰(auto-watched)"된 카테고리에는 이것이 해당되는지 확실하지 않습니다. 저는 주로 다이제스트/요약 수신자를 기준으로만 생각해 봤기 때문입니다. 다른 분들이 이 부분에 대해 답변해 주시면 좋겠습니다.
그렇게 말할까 봐 걱정했어. Rails 콘솔 방식은 제 관리 능력으로 감당하기엔 훨씬 어려웠거든 (우리 VPS에는 Rails조차 설치되어 있지 않았고, 그 방식으로 600개의 주소를 가져오는 방법도 도무지 모르겠었으니까). 그래서 개발자를 불러서 확인해 달라고 해야 할 것 같아. 그에게 확인해 달라고 해볼게.
여기 아무도 Ruby 경험이 없어서, 모든 명령어를 하나의 큰 파일로 만들어 Rails 콘솔에 붙여넣는 방식으로 진행했습니다. 일단은 잘 동작하는 것 같지만, 첫 50건의 테스트 임포트 중 4건의 Sidekiq 오류가 발생했고, 이 오류들이 무엇을 의미하는지, 어떻게 처리해야 하는지 모르겠습니다. 사용자는 생성된 걸까요? 아니면 단순히 환영 이메일을 받지 못한 걸까요? 재시도가 실패하고 있으니, 이 오류들을 그냥 삭제하고 넘어가는 게 좋을까요?
꽤나 시간이 지난 후에야 이 문제에 대해 통보를 받았기 때문에, 되돌아가서 확인하는 것이 불가능했습니다. 이러한 오류가 가져온 이메일 주소가 이미 시스템에 존재할 때 발생하는 것일 수 있습니다—이를 테스트해 볼 수 있습니다. 생성되기를 기대했던 모든 사용자는 생성되었습니다.
하지만 제가 이해할 수 없는 것은, 이 스크린샷의 정보와 Discourse에서 조회할 수 있는 어떤 정보 사이에 어떤 연결이 있는지입니다. email_tokens는 다른 정보와 연결할 수 있는 것인가요?
작은 배치로 계속 진행하면서 이 메시지 중 하나에 오류를 연결해 볼 수 있는지 확인해 보겠습니다.
결국 이 에러들은 가져오기(import) 과정에서 오류가 발생할 때마다 생성된 것이었습니다. 예를 들어, 사용자 이름이 20자를 초과하거나, 사용자 이름에 특수 문자가 연속으로 두 개 이상 사용된 경우, 또는 이메일이 이미 사용 중인 경우 등이 해당합니다(이 항목은 결과에 일관성이 없었습니다). 저는 각 문제를 수정한 뒤 진행했고, 마지막에 Sidekiq에서 모든 에러를 삭제했습니다.