안녕하세요,
오래된 phpBB3 포럼을 Discourse로 전환하려고 합니다. Docker 설정은 완료했고, 초기 설정(Initial Setup) 화면에도 접근할 수 있습니다. 하지만 이메일이 전송되지 않아 초기화를 완료할 수 없습니다.
디버깅을 해보았지만 원인을 찾지 못해 도움을 요청합니다.
제 환경 구성은 다음과 같습니다. apache2를 Docker로 향하는 리버스 프록시로 설정했으며, 이는 정상적으로 작동합니다. 메일 서버는 같은 머신에 실행 중인 mailcow Docker입니다. 메일 서버는 SMTP의 STARTTLS(포트 587) 및 웹메일을 통해 일상적으로 철저히 테스트되어 정상 작동합니다.
app.yml 설정은 다음과 같습니다:
DISCOURSE_SMTP_ADDRESS: mail.example.com
DISCOURSE_SMTP_PORT: 587
DISCOURSE_SMTP_USER_NAME: discourse@example.com
DISCOURSE_SMTP_PASSWORD: "password"
#DISCOURSE_SMTP_ENABLE_START_TLS: true # (선택 사항, 기본값 true)
#DISCOURSE_SMTP_DOMAIN: mail.example.com
DISCOURSE_NOTIFICATION_EMAIL: discourse@example.com
./discourse-doctor를 실행하면 다음과 같은 결과가 나옵니다:
==================== MAIL TEST ====================
강력한 테스트를 위해 http://www.mail-tester.com/에서 주소를 가져오거나
본인에게 테스트 메시지를 보내보세요.
메일 테스트용 이메일 주소? ('n' 입력 시 건너뜀) [admin@example.com]:
admin@example.com으로 메일 전송 중 . . .
mail.example.com:587, 사용자 이름:discourse@example.com, 평문 인증으로 admin@example.com 전송 테스트 중.
=======================================
ERROR
========================================
UNEXPECTED ERROR
Cannot assign requested address - connect(2) for [correct ipv6]:587
======================================
SOLUTION
=======================================
이것은 흔하지 않은 오류입니다. 권장 솔루션이 없습니다!
위 오류 메시지를 정확히 https://meta.discourse.org/에 보고해 주세요.
(솔루션을 찾으신다면 그것도 함께요!)
웹에서 비슷한 오류 메시지를 가진 사람을 찾지 못해 이 스레드로 향했습니다.
컨테이너 외부에서 telnet으로 메일 서버에 쉽게 연결할 수 있었습니다.
컨테이너 내부에서 시도해 본 것:
getent hosts mail.example.com
명령은 올바른 IPv6 주소를 제공했습니다.
그런 다음 오류가 발생하기 시작했습니다:
openssl s_client -connect mail.example.com:587 -starttls smtp
140124593714496:error:0200206E:system library:connect:Connection timed out:../crypto/bio/b_sock2.c:110:
140124593714496:error:2008A067:BIO routines:BIO_connect:connect error:../crypto/bio/b_sock2.c:111:
connect:errno=110
openssl s_client -6 -connect "[correct IPv6]:587" -starttls smtp
139918557709632:error:02002063:system library:connect:Cannot assign requested address:../crypto/bio/b_sock2.c:110:
139918557709632:error:2008A067:BIO routines:BIO_connect:connect error:../crypto/bio/b_sock2.c:111:
connect:errno=99
openssl s_client -connect smtp.gmail.com:587 -starttls smtp
이는 정상적으로 작동합니다.
openssl s_client -connect mail.example.com:587 -starttls smtp
을 컨테이너 외부에서 시도하면, 이것도 정상적으로 작동합니다.
mailcow/postfix 로그에는 아무것도 표시되지 않습니다…
완전히 막혀 있습니다. 다음으로 어디를 살펴봐야 할지 도와주실 수 있나요?