app.yml에서 이메일 설정을 다음과 같이 구성했습니다.
DISCOURSE_SMTP_ADDRESS: mail.mysecrect.tld
DISCOURSE_SMTP_PORT: 465
DISCOURSE_SMTP_USER_NAME: minegenix@mysecret.tld
DISCOURSE_SMTP_PASSWORD: <secret>
app.yml에서 이메일 설정을 다음과 같이 구성했습니다.
DISCOURSE_SMTP_ADDRESS: mail.mysecrect.tld
DISCOURSE_SMTP_PORT: 465
DISCOURSE_SMTP_USER_NAME: minegenix@mysecret.tld
DISCOURSE_SMTP_PASSWORD: <secret>
로그에서 이것도 발견했습니다:
fail
Delivered mail 3ff63fed-4142-4042-ab33-29493b32b3a6@beta2.mysecret.tld (30001.9ms)
Job exception: execution expired
app.yml에 다음 항목을 추가해야 할 수 있습니다
DISCOURSE_SMTP_ENABLE_START_TLS: false
아, 참고로 저는 mailcow를 사용해요!
서버가 mysecret.tld가 아니라 discourse beta2.mysecret.tld로 실행되고 있는 건가요?
다음 옵션들을 시도해 보세요:
DISCOURSE_SMTP_ADDRESS: 172.17.0.1 # 여기에는 내부 IP를 사용하세요 - 메일 서버 도메인이 올바르게 해석되지 않을 수 있습니다
DISCOURSE_SMTP_PORT: 587
DISCOURSE_SMTP_USER_NAME: "YOUR-SMTP-USER-NAME"
DISCOURSE_SMTP_PASSWORD: "YOUR-SMTP-PASSWORD"
#DISCOURSE_SMTP_ENABLE_START_TLS: true # (선택 사항, 기본값 true)
DISCOURSE_SMTP_OPENSSL_VERIFY_MODE: none
DISCOURSE_SMTP_DOMAIN: mysecret.tld
mysecret.tld는 포럼 주소를 공개하고 싶지 않아서 실제 도메인을 숨기기 위해 사용한 임시 자리표시자일 뿐입니다 ![]()
…@ beta2. mysecret.tld와 같은 발신자 이메일로 메일을 보내고 계신 건가요? 하지만 mailcow 계정은 …@mysecret.tld로 되어 있는 경우입니다?
아니요, 저는 …@mysecret.tld에서 이메일을 보내고 있고, 사이트는 beta2.mysecret.tld에서 실행 중입니다.
네, 지금 그렇게 하고 있어요
참고로, 재빌드할 때마다 부트스트랩을 실행해야 하나요?
음, 설정을 추가했는데도 해결되지 않았어요.
./launcher enter app
getent hosts를 사용하여 SMTP 서버 이름의 DNS 이름 해석 확인:(dig, nslookup, ping 등은 컨테이너 내부에 설치되어 있지 않습니다.)
getent hosts your.smtp.server
성공 시 결과:
# IPv4
123.123.123.123 your.smtp.server
# IPv6
2001:db8:0:0:0:ff00:42:8329 your.smtp.server
openssl을 사용하여 SMTP 서버로 연결을 시도해 보세요:(telnet, nc 등은 컨테이너 내부에 설치되어 있지 않습니다.)
성공적으로 연결될 때까지 여러 설정을 조정해 보세요.
openssl s_client -connect your.smtp.server:465
openssl s_client -connect your.smtp.server:587 -starttls smtp
# IPv4
openssl s_client -connect 172.17.0.123:465
openssl s_client -connect 172.17.0.123:587 -starttls smtp
# IPv6
openssl s_client -6 -connect "[2001:db8:0:0:0:ff00:42:8329]:465"
openssl s_client -6 -connect "[2001:db8:0:0:0:ff00:42:8329]:587" -starttls smtp
참고: How to check SMTP connection → Step 3: Checking SMTP Connection Over TLS Using Openssl
![]()
( ifconfig , ip 등은 컨테이너 내부에 설치되어 있지 않습니다.)
hostname -I
결과 예시:
172.17.0.2
openssl로 연결이 되지 않고, getent 명령어로도 다음 내용만 표시됩니다:
2606:4700:3032::ac43:d2f1 mail.secret.tdl
2606:4700:3033::6815:4db8 mail.secret.tld
(여기서 secret.tld는 제 실제 도메인을 대신 표기한 것입니다)
추측이지만, 이건 공개 IP인가요? mailcow가 이 공개 IP에서 smtp 연결을 수신하도록 설정되어 있나요, 아니면 내부 네트워크에서만 수신하도록 되어 있나요?
Discourse 컨테이너 내부에서 컨테이너의 IP를 확인하려면 다음을 사용할 수 있습니다:
hostname -I
mailcow도 같은 내부 (docker-) 네트워크에 있나요?
172.17.0.2는 hostname -I 명령으로 얻은 값입니다
mailcow 컨테이너에 접속한 후 hostname -I 명령도 실행해 볼 수 있나요? Mailcow와 Discourse가 같은 호스트에 있는 두 개의 별도 Docker 컨테이너인가요?
메일코우 컨테이너에 들어가는 방법은 무엇인가요? 런처 스크립트가 없네요.
저도 mailcow에 대해서는 잘 모르겠습니다. mailcow 커뮤니티에 다시 문의해 보는 것이 더 나을 수도 있습니다: https://community.mailcow.email/
포럼에서 메일 서비스로 사용할 수 있는 우분투에 설치할 수 있는 소프트웨어나 메일 시스템을 위해 무엇을 사용해야 할까요?