현재 홈 서버에서 Docker를 사용하여 Discourse 호스트를 설정하여 테스트하고 있습니다. 지금까지 꽤 잘 작동하고 있으며, 인스턴스가 원활하게 실행되고 있습니다.
하지만 제 자체 서버를 통해 이메일을 보내는 데 실패하고 있습니다. 원칙적으로 서비스 제공업체를 통한 전송은 작동합니다.
저는 외부 네트워크에서 자체 smtpd를 실행하고 있습니다. 포트 스캔을 제한하기 위해 IPv4를 통한 전송용 표준 포트인 465와 587을 비활성화했습니다. IPv4 전송용으로만 포트 23456이 열려 있습니다.
root@HomeServer:/Ruby/docker.ruby.discourse# ./discourse-doctor
으로 확인한 결과는 다음과 같습니다:
==================== MAIL TEST ====================
For a robust test, get an address from http://www.mail-tester.com/
Or just send a test message to yourself.
Email address for mail test? ('n' to skip) [hostmaster@example.com]:
Sending mail to hostmaster@example.com. . .
Testing sending to hostmaster@example.com using smtpd.example.com:23456, username:mbox_hostmaster@example.com with plain auth.
======================================== ERROR ========================================
UNEXPECTED ERROR
Net::ReadTimeout
====================================== SOLUTION =======================================
This is not a common error. No recommended solution exists!
Please report the exact error message above to https://meta.discourse.org/
(And a solution, if you find one!)
=======================================================================================
이후 telnet으로 연결을 시도해 보았지만, 그 부분은 문제없었습니다:
root@HomeServer:/Ruby/docker.ruby.discourse# docker exec -t -i 50544a79b91a /bin/bash
root@discourse:/# telnet smtpd.example.com 23456
Trying 1.2.3.4...
Connected to smtpd.example.com.
Escape character is '^]'.
quit
Connection closed by foreign host.
root@discourse:/# exit
app.yml의 실제 설정은 다음과 같습니다:
DISCOURSE_SMTP_ADDRESS: smtpd.example.com
DISCOURSE_SMTP_PORT: 23456
DISCOURSE_SMTP_USER_NAME: mbox_hostmaster@example.com
DISCOURSE_SMTP_PASSWORD: pa$$word
DISCOURSE_SMTP_ENABLE_START_TLS: true # (선택 사항, 기본값 true)
#DISCOURSE_SMTP_DOMAIN: discourse.example.com # (일부 제공업체에서 요구)
DISCOURSE_NOTIFICATION_EMAIL: no-reply@discourse.example.com # (알림을 보내는 주소)
# DISCOURSE_SMTP_OPENSSL_VERIFY_MODE: none
# DISCOURSE_SMTP_AUTHENTICATION: "login"
IPv6를 통해 작동하도록 시도해 보았지만 실패했습니다. Docker 앱 내에서 IPv6 연결을 활성화할 수 있는 해결책이 있을까요?
지금 2024년이며 프로토콜이 표준화된 지 26년이 지났는데, 저는 시스템에 IPv6를 설정해 두었고 모든 것이 매우 잘 작동하고 있습니다.
도움 주셔서 감사합니다!
Achim