첫 번째 가입 이메일의 반환 코드가 사라졌습니다

최초 등록 이메일을 설치한 최신 docker 이미지에서, 내 SMTP 서버가 다음과 같이 응답합니다:

Unexpected return code 554 (expected 250):
“Access denied: User `arn:aws:iam::[acct]:user/[user]' is not authorized to perform `ses:SendRawEmail' on resource `arn:aws:ses:us-west-1:[acct]:identity/[identity]'”.

그러나 Discourse 로그 파일 production.log에는 다음과 같이 표시됩니다:

Started PUT "/finish-installation/resend-email" for [ip] at 2020-11-16 20:58:10 +0000
Processing by FinishInstallationController#resend_email as HTML
  Parameters: ...
Completed 200 OK in 23ms (Views: 6.4ms | ActiveRecord: 0.0ms | Allocations: 6023)
...
Delivered mail [randid]@[hostname] (191.3ms)

제 생각에는 웹사이트, 또는 적어도 로그가 성공 메시지가 아닌 오류를 반환해야 하는 것 같습니다.

감사합니다,
Jeff

1개의 좋아요

일반적으로 이메일은 백그라운드 큐를 통해 전송되므로 사용자에게는 보이지 않습니다.

다만, 마법사(wizard)가 실패 시 더 화려하고 눈에 띄게 알림을 주는 방식에는 개방적입니다. 하지만 이를 위해서는 서버를 폴링해야 합니다. 꽤 큰 변경 사항이 될 것 같아 확실하지는 않습니다.

2개의 좋아요

위자드(wizard) 관련: 위자드가 실패를 표시하지 않는 것은 괜찮습니다. 다만, 이메일이 성공적으로 전송되었다는 의미도 표시해서는 안 됩니다. 사실에 더 가까운 메시지가 도움이 될 것입니다. 반환 상태를 표시하는 것이 너무 어렵다면, "가입 이메일이 성공적으로 대기열에 추가되었습니다. 상태는 /path/to/log 파일을 확인하세요."라고 표시하는 것이 더 좋습니다.

로그 관련: 워커 스레드는 상태, 특히 오류가 발생한 경우를 기록해야 합니다. 아키텍처에 익숙하지는 않지만, "unicorn.stderr.log"나 다른 어디에서도 유용한 정보를 찾을 수 없습니다. 무언가가 반환 코드와 오류 메시지를 삼켜 버리고 있는 것 같습니다…

1개의 좋아요

도전 정신이 넘친다면, 이 부분을 개선하는 PR을 더할 나위 없이 환영합니다.

2개의 좋아요

변경 사항에 대해 열린 자세를 보여 주셔서 감사합니다. 할 일 목록에 추가할게요. 다른 사람이 먼저 처리해도 서운해하지 않을게요 :slight_smile:

1개의 좋아요

관리자 로그인 후 관리자 콘솔에서 이메일 오류를 확인할 수 있으며, 이는 데이터베이스에 저장되어 있음을 의미합니다. 따라서 첫 번째 관리자 등록이 완료되기 전에 데이터베이스를 통해 접근할 수 있었을 가능성이 있습니다.

skipped_email_logs 테이블에는 제가 찾던 정보가 포함되어 있습니다.

discourse 컨테이너에 discourse 사용자로 로그인한 상태라면 다음을 실행할 수 있습니다:

psql discourse -c "select * from skipped_email_logs"