Discourse가 SMTP 서버에 연결은 되지만 이메일 전송에 실패합니다

첫 번째 사용자 등록 이메일을 받지 못합니다:

Discourse doctor의 결과:
SMTP 서버 연결 성공.
이메일 전송 실패.

그러나:
mail.domain.com의 587 포트로 Telnet 연결이 성공하고 EHLO mailserver 명령도 정상 작동합니다.

이를 어떻게 해결할 수 있을까요? 도움이 크게 필요합니다.

메일 서버 로그를 확인해 보세요. 어떤 오류든 v Discourse-doctor가 이해할 수 있는 것이 아닙니다.

exim4를 설정하는 방법을 Google에서 검색해야 합니다.

7. The default configuration file 에서

반송(bounce) 메시지가 원래 메시지를 유발한 발신자 주소가 무효로 인해 영구적 실패를 만나면, 반송 메시지를 전달할 수 없게 되면서 동결(freezing)이 발생합니다.

제 추측으로는 알림 이메일 주소를 변경하거나 exim이 서브도메인을 사용하도록 설정해야 할 것 같습니다.

컨테이너를 다시 빌드하는 것을 잊으셨나요?

어쨌든, 다음 명령을 사용하여 컨테이너를 확인할 수 있습니다:

docker exec -it app rails c

그 후, rails 콘솔에서:

[1] pry(main)>ENV

모든 SMTP 환경 변수를 쉽게 확인할 수 있습니다.

Exim4가 이메일을 보내고 받을 수 있는지 확인하기 위해 테스트되었습니다.
Discourse는 올바른 자격 증명을 사용하여 discourse-setup으로 다시 구축되었습니다:

Hostname      : forum domainname com
Email         : user@test com
SMTP address  : mail forum domainname com
SMTP port     : 587
SMTP username : postmaster@forum domainname com
SMTP password : password

그 후, discourse-doctor를 실행하여 Discourse가 로컬 exim4 메일 서버에서 이메일을 보낼 수 있는지 테스트합니다.

Discourse-doctor는 다음과 같이 표시됩니다:
“SMTP 서버 연결 성공.”
“메일 전송 실패.”

그러나 exim4 로그에는 오류가 없습니다.

왜 메일 전송이 실패하는 것일까요?
이것은 흔한 문제인가요?

SMTP 주소가 mail forum domainname com인 점에 유의하세요.
앞에 "mail"이 있어야 하나요?

Discourse-doctor에 따르면 Discourse는 다음 주소에 연결합니다:
mail forum domainname com,
하지만 Discourse는 이메일을 보내지 않습니다.

내 추측은 포럼 호스트명과 메일 서버가 사용할 도메인명 사이에 불일치가 있다는 것입니다.

Discourse가 메일을 전송할 때 사용하는 호스트네임은 무엇인가요?
forum.somedomain.com을 사용하나요?
아니면
mail.forum.somedomain.com을 사용하나요?

기억이 맞다면 기본값은 email@forum.somedomain.com입니다.

일부 사용자는 email@somedomain.com을 기대하기 때문에 이 부분이 혼란을 줄 수 있습니다.