대량 사용자 초대 오류

대량 초대장을 보냈는데 이 메시지가 표시되었습니다.


그 메시지 외에는 이메일이 발송되었다는 어떠한 표시도 찾을 수 없으며, 로그나 관리자 화면에도 관련 내용이 없습니다. 심지어 이메일 서비스 제공업체에서도 발송된 이메일 수가 급증한 흔적이 보이지 않습니다.

해당 메시지의 “초대장 메일 발송” 부분이 정확하지 않을 수 있나요?

제 실수를 발견했습니다. CSV 파일에 열 이름을 남겨두었네요.

사용자들에게 스팸을 보내고 싶지 않습니다. 840개의 초대장이 발송되었습니다라는 메시지가 표시되었음에도 불구하고, 대량 이메일이 실제로 발송되지 않았다고 가정해도 괜찮을까요?

제 추측은 모든 행이 전송되었고, 오류는 열 이름이 포함된 첫 번째 행에서만 발생했을 것이라는 것입니다. 아마 @techAPJ 님이 확인해 주실 수 있을 것 같습니다.

/admin/email/sent에서 대량 이메일이 발송된 것으로 보이는 내용은 찾을 수 없습니다. 다른 곳에 로그 항목이 있는지 확인해 봐야 할까요?

또 다른 흥미로운 점은, 단일 초대장을 보낼 때와 유사한 대화 상자가 표시될 것으로 예상했지만 실제로는 표시되지 않았다는 것입니다. 이는 정상적인 동작인가요?

이메일 전송이 정상적으로 작동하고 있다면, 840개의 초대 이메일이 모두 발송되었음을 확신시켜 드릴 수 있습니다. 혹시 재확인하시려면 초대받은 사용자 중 한 명에게 확인해 보시는 건 어떨까요?

/admin/email/sent에서 최근 이메일 발송 항목을 확인하고 계신가요? /admin/email에서 테스트 이메일을 보내보시고 로그 항목이 생성되는지 확인해 보실 수 있을까요? (생성되어야 합니다.)

나 자신에게 보낸 테스트 메시지는 정상적으로 작동하며, /admin/email/sent에 표시됩니다. 최근 다른 여러 이메일도 마찬가지입니다.

한 가지 더 생각나는 부분이 있습니다. 이 이메일 주소들은 Mailman 목록에서 가져온 스테이징 상태의 사용자들입니다. 일괄 초대 시 스테이징 상태의 사용자에게도 이메일이 발송되나요?

저는 자체 사이트에서 대량 초대 CSV 파일에 스테이징 사용자의 이메일 주소를 넣어 테스트해 보았습니다. Discourse에서 받은 응답은 다음과 같았습니다:

대량 사용자 초대 파일이 처리되었습니다. 초대 이메일 1건이 전송되었습니다.

하지만 실제로는 초대가 전송되지 않았습니다. 스테이징 사용자를 초대할 때의 예상 동작이 무엇인지 확실하지는 않지만, Discourse 코드에서 문제가 발생하는 부분은 여기인 것 같습니다: discourse/app/jobs/regular/bulk_invite.rb at main · discourse/discourse · GitHub. User.find_by_email(<staged_user_email>)가 사용자를 반환하기 때문에 초대가 전송되지 않습니다.

스테이징 사용자를 포럼에 초대할 수 없다면, 해당 사용자에게 초대가 이메일로 전송되었다고 표시되는 알림을 보내서는 안 됩니다.

수정: 스테이징 사용자를 대량으로 초대할 수 없는 문제는 회귀(regression)인 것 같습니다. 개별적으로 스테이징 사용자에게 초대를 보내는 것은 아무 문제 없이 작동합니다.

이것을 @techAPJ 님이 수정해야 하나요?

귀사의 아웃바운드 메일 서버는 무엇인가요? Mailgun과 Mandrill은 해당 서비스를 통해 발송된 이메일에 대해 매우 유용한 인사이트를 제공합니다. 모든 이메일을 확인할 수 있습니다.

여러분, @codinghorror @techAPJ, 이 문제에 대해 업데이트가 있나요?

오늘 이 문제를 수정하겠습니다.

완료 방법

@tisawwer 인스턴스를 최신 버전으로 업데이트하면 스테이징된 사용자에게 대량 초대장을 보낼 수 있습니다.

(대량 초대가 원래 스테이징된 사용자에게 사용되도록 설계되지 않았기 때문에 이 커밋을 기능(feature)으로 표시했습니다. 이 커밋에서 스테이징된 사용자를 초대할 수 있도록 허용하기 시작했으며, 이제 대량 초대에서도 이를 허용합니다.)

오늘 저녁에 업그레이드해서 테스트하고 결과를 보고하겠습니다. 감사합니다!

성공적으로 작동한 것 같습니다. 테스트를 위해 사용자 1명 목록으로 대량 초대장을 보냈습니다. 조금 더 테스트하고 발송된 이메일을 조정해 본 후에 실제 초대장을 보내겠습니다.

두 분 모두 정말 감사합니다.