자체 호스팅된 Discourse 설치에서 발신 메일(outbound mail) 설정을 시도해 왔지만 아직까지 성공하지 못했습니다. Namecheap 지원팀의 도움까지 받았지만 작동하지 않았습니다. 여기에서 제가 놓친 부분이 무엇인지 알려주실 수 있는 분이 있을까요.
설정 (Setup)
호스팅: DigitalOcean 드롭렛, 공식 Docker 방식으로 Discourse 설치 (/var/discourse).
도메인: Cloudflare로 관리 (사이트는 프록시된 A 레코드, MX/메일 레코드는 DNS 전용).
메일 제공업체: Namecheap Private Email.
Discourse 버전: 최신 tests-passed 브랜치.
정상 작동하는 부분
hello@domain.com 수신함에 메일을 정상적으로 받을 수 있습니다.
MX, SPF, DKIM, DMARC DNS 레코드가 설정 및 검증되었습니다.
Gmail에서 hello@domain.com으로 메일을 보내는 수신 과정이 정상 작동합니다.
실패하는 부분
발신 메일(활성화 이메일, Discourse에서 보낸 테스트 이메일)이 전혀 도착하지 않습니다.
Namecheap 지원팀에서 자격 증명과 설정이 정확하다고 확인해 주었지만, 서버에서 실패하는 이유는 설명하지 못했습니다.
현재 app.yml 설정
DISCOURSE_SMTP_ADDRESS: mail dot privateemail dot com
DISCOURSE_SMTP_PORT: 587
DISCOURSE_SMTP_USER_NAME: hello at domain dot com
DISCOURSE_SMTP_PASSWORD: “PASSWORD”
DISCOURSE_SMTP_ENABLE_START_TLS: true
DISCOURSE_SMTP_DOMAIN: domain dot com
DISCOURSE_NOTIFICATION_EMAIL: hello at domain dot com DISCOURSE_SMTP_AUTHENTICATION: login
포트 25, 465 및 587을 활성화해야 하는 애플리케이션 요구사항이나 비즈니스 니즈가 있다는 점을 이해하고 있습니다. 그러나 현재 정책상 해당 포트에 대한 제한을 해제해 드릴 수 없습니다.
애플리케이션에서 허용된다면 포트 2525와 같은 대체 포트 사용을 권장합니다. 또한, SendGrid의 REST API를 사용하면 전통적인 SMTP 프로토콜 대신 HTTP 요청을 통해 이메일을 보낼 수 있으며, 이 방식이 적합하다면 이를 활용하거나 다른 제3자 발송 서비스를 사용할 수도 있습니다.