안녕하세요. 지난 며칠 동안 Discourse 포럼을 설정하는 데 어려움을 겪고 있었는데, 그 모든 문제가 이메일 설정에서 발생했습니다. 이메일 가입 과정을 건너뛰어 포럼은 띄울 수는 있었지만, 사람들이 가입할 수 있도록 이메일 기능이 정상적으로 작동해야 합니다. 같은 결과를 계속 얻고 있으며, 여러 가지를 시도해 보았지만 아무것도 해결되지 않았습니다. 매번 두 가지 중 하나가 발생했습니다:
테스트 이메일 오류 메시지에 "호스트명 . . . 이(가) 서버 인증서와 일치하지 않습니다"라고 표시됩니다.
테스트 이메일 오류 메시지에 "502"라고 표시되고, Sidekiq에서는 Jobs::HandledExceptionWrapper: Wrapped Net::ReadTimeout: Net::ReadTimeout with #<TCPSocket:(closed)> 오류가 발생합니다.
각 오류가 언제 나타나는지 말씀드리자면, 첫 번째 오류는 모든 시나리오에서 발생합니다. 두 번째 오류는 포트 465를 사용할 때 나타났습니다. "테스트 이메일 보내기"가 완료되는 데 시간이 걸린 후 해당 오류가 나타났습니다. 방금 SSL을 비활성화하여 포트 587을 사용할 수 있게 했는데, 이제 오류 1이나 2가 발생하는 대신 “테스트 이메일 전송 중” 상태로 멈춰 있습니다.
이 시점에서 어떻게 해야 할지 모르겠고, 며칠째 이 문제로 고생하고 있지만 아직 해결책을 찾지 못했습니다. 도움이 정말로 절실합니다. 시간 내어 도와주셔서 감사합니다.
업데이트:curl --ssl-reqd 명령을 사용하여 포트 465, 587, 25, 2525를 테스트했습니다. 결과는 다음과 같습니다:
25: 작동하지 않음 (Curl 오류 35, 잘못된 버전 번호)
465: 의도대로 작동하며 빠른 이메일 응답
587: 작동하지 않음 (Curl 오류 35, 잘못된 버전 번호)
2525: 실패하지는 않았지만 이메일이 전송되지 않음 (전송 중 시간이 계속 올라가고 멈추지 않음)
그렇지 않다고 생각합니다. 도움이 된다면, 이메일은 VoltHosting에서 제공하는 것입니다.
또한, Discourse 서버는 var/discourse 아래에 설치되어 있으며, 정상적으로 작동합니다(이메일을 건너뛰고 만든 관리자 계정으로 웹사이트에 접속하여 둘러볼 수 있습니다). 이메일 테스트도 이 방식으로 수행합니다(이메일 > 설정과 이메일 > 미리보기 요약에서 테스트 이메일을 보내보며, 여기서 해당 오류가 발생합니다). 도움을 주셔서 감사합니다.
권장 제공업체 중 하나를 사용해 보십시오. 이렇게 하면 문제가 Discourse 설치에 있는지, 아니면 통신하려는 메일 서버에 있는지를 빠르게 파악하는 데 도움이 됩니다.
권장 제공업체 목록이 존재하는 이유는, 해당 제공업체들이 Discourse와 함께 작동하는지 검증되었기 때문입니다. SMTP는 가장 좋은 경우에도 골칫거리일 수 있으며, 권장 설정을 사용하지 않는 경우라면 그로 인해 발생하는 추가적인 기술적 부담을 스스로 감당한다는 것이 일반적으로 전제됩니다.
답변 주셔서 감사합니다. 추천하신 제공업체 중 하나를 사용할 수 없을 것 같습니다. 플랜을 만든 사람이 해당 회사로 이메일을 더 많이 보내야 하기 때문에, VPS 자체 비용에 추가 비용이 발생하게 되며, 지금은 그렇게 할 수 있을 것 같지 않습니다. 매번 포럼을 다시 구축하지 않고 이메일 서비스를 더 효율적으로 테스트할 수 있는 다른 방법이 있을까요? 도움 주셔서 감사합니다.
이메일 설정을 편집한 후 - 새 설정이 적용됩니다. 모든 환경 변수에도 동일하게 적용됩니다.
서버 인증서가 호스트 이름과 일치하지 않는 경우, 이는 Discourse의 문제가 아니라 VoltHosting이 해결해야 할 문제입니다. 이메일 시스템 관련 지원이 필요하면 VoltHosting에 문의하는 것이 좋습니다. 유효한 대안 호스트 이름이 있을 수도 있습니다.
어쨌든, 위에서 링크한 페이지에서 제공하는 무료 트라이얼 중 하나를 사용하여 Discourse 자체가 이메일을 올바르게 처리하는지 확인하는 것을 권장합니다. Discourse가 정상적으로 작동하는 것을 확인한 후에는 언제든지 VoltHosting SMTP로 되돌릴 수 있습니다.
답변해 주셔서 감사합니다. 가능하다면, 이 문제에 대해 더 깊이 조사하려면 어떻게 해야 할까요? 테스트를 실행하고 출력을 확인할 수 있는 도커 명령어가 있거나, 다른 방법이 있을까요? 어딘가에서 테스트를 수행하여 문제의 출력을 얻을 수 있는 방법이 있을까요? 만약 그런 방법이 없다면, 그것도 충분히 이해합니다. 도움을 주셔서 감사합니다.
업데이트:curl --ssl-reqd 명령을 사용하여 포트 465, 587, 25, 2525를 테스트했습니다. 결과는 다음과 같습니다:
25: 작동하지 않음 (Curl 오류 35, 잘못된 버전 번호)
465: 의도대로 작동했으며 이메일 응답이 빨랐습니다
587: 작동하지 않음 (Curl 오류 35, 잘못된 버전 번호)
2525: 실패하지는 않았지만 이메일이 전송되지 않았습니다 (전송 중 시간 카운트가 계속 올라갔지만 이메일은 전송되지 않았습니다)
도움이 될지 확실하지는 않지만, VPS에서 curl --ssl-reqd 명령을 실행하여 이메일을 성공적으로 전송할 수 있었습니다(이 답변에서 언급했듯이). 뿐만 아니라 앱 내부에서도 해당 명령을 실행(./launcher enter app 입력)하여 동일한 결과(465 포트는 작동, 25와 587 포트는 작동하지 않음, 2525 포트는 타임아웃 오류 발생)를 얻었지만, 포럼 자체에서(테스트 이메일을 사용하여) 실행할 때는 여전히 502 오류가 발생합니다. 이 추가 정보가 도움이 되기를 바랍니다. 도움을 주셔서 감사합니다.