nparab
(Nilesh Parab)
12월 24, 2019, 9:14오후
1
DigitalOcean의 1클릭 앱 설치로 LetsEncrypt HTTPS 지원을 활성화하여 Discourse를 설치했습니다. 관리자 이메일 계정으로 활성화 이메일을 받지 못하고 있습니다. ./discourse-doctor를 실행하면 이메일 전송 단계에서 다음과 같은 오류가 발생합니다:
Net::ReadTimeout
Discourse는 서브도메인에 호스팅되어 있으며, 메인 사이트(메인 도메인)와 메일 서버는 Hostgator에 있습니다. 메인 도메인에는 SPF 및 DKIM 레코드가 활성화되어 있습니다. Discourse의 메일 전송은 Hostgator 메일 서버가 지원하는 포트 465로 설정되어 있습니다.
어디에 문제가 있는지 알려 주실 수 있나요?
미리 감사드립니다.
수정: 포트 587을 시도하면 아래에 제시된 다른 오류가 ./discourse-doctor에서 발생합니다:
Sending mail failed.
nparab
(Nilesh Parab)
12월 25, 2019, 12:16오후
2
업데이트: 포트 587을 사용하고 app.yaml 파일에 다음 값을 설정하여 활성화 이메일을 정상적으로 작동시켰습니다:
DISCOURSE_SMTP_ENABLE_START_TLS: false
관리자 인터페이스에 로그인한 후, 이전부터 존재했던 것으로 보이는 다음과 같은 Sidekiq 오류를 확인할 수 있었습니다:
Jobs::HandledExceptionWrapper: Wrapped OpenSSL::SSL::SSLError: hostname “mail.mydomain.com ” does not match the server certificate
이 오류가 DISCOURSE_SMTP_ENABLE_START_TLS를 false로 설정했기 때문에 사라졌다는 점은 이해합니다. 하지만 이것이 올바른 방법인가요?
Johani
(Joe)
12월 25, 2019, 12:59오후
3
안녕하세요, meta에 오신 것을 환영합니다 @nparab
nparab:
DigitalOcean의 1클릭 앱 설치
DigitalOcean에서 제공하는 1클릭 설치는 Discourse를 설정하는 공식적으로 권장되는 방법이 아니므로, 해당 설치 방식을 지원할 수 없습니다. 공식 설치 가이드 를 따르시는 것을 강력히 권장합니다.
pfaffman
(Jay Pfaffman)
12월 25, 2019, 3:55오후
4
해당 메시지는 그 자체로 설명이 되며, 메일 서버가 잘못 구성되어 있음을 의미합니다.
nparab
(Nilesh Parab)
12월 25, 2019, 11:44오후
5
하지만 이 명령으로 연결하면:
openssl s_client -starttls smtp -crlf -connect mail.mydomain.com:587
정상적으로 연결되고 심지어 이메일도 보낼 수 있습니다. 메일 서버가 잘못 구성되어 있다면 이 명령도 작동하지 않아야 하지 않나요?
업데이트: 이 명령을 실행하면:
openssl s_client -servername mail.mydomain.com -starttls smtp -crlf -connect mail.mydomain.com:587
mail.mydomain.com의 인증서가 아닌 mydomain.com의 인증서가 반환됩니다.
말씀하신 잘못된 구성이 바로 이것인가요?
현재로서는 인증서가 일치하도록 app.yml 파일에서 DISCOURSE_SMTP_ADDRESS를 mail.mydomain.com 대신 mydomain.com으로 설정했습니다. 이로 인해 문제가 발생할까요?