Proposed changes to discourse-setup because Digital Ocean blocks outbound smtp

3월에도 DO에 587 포트를 차단하도록 요청했습니다. 당시 상당히 불만이 많아서 DO에 연락을 했는데, 그들은 제 호스트를 의도적으로 차단할 의도는 없었다고 주장했습니다. 저는 postfix(그리고 netcat)로 몇 가지 실험을 해보았는데, 호스트의 세 개 IP 주소 중 어느 것을 사용하든 587 포트로 외부 접속이 불가능하다는 것을 확인했습니다. 팀 내 드롭렛(Droplet)들 사이의 내부 서브넷에서도 마찬가지였습니다. 이후 DO의 기술 지원 담당자가 제 드롭렛의 네트워크를 "초기화(reset)"했는데, 이를 위해 드롭렛을 종료한 후 다시 시작해야만 접속이 복구되었습니다.

DO가 가상 인프라에서 “전역(global)” 차단을 적용하면서 SMTP를 사용하는 사용자가 누구인지 확인조차 하지 않은 것으로 보입니다. 이 부분은 상당히 게으른 처사입니다. 드롭렛이 Mailgun, SMTP2GO 등 전용 상용 릴레이를 사용하고 있는지 쉽게 확인할 수 있었을 텐데, 1차 단계에서 이를 제외하는 조치를 취할 수 있었을 것입니다. 하지만 587 포트 필터링/차단 계획을 고객들에게 사전에 알리지 않은 것에는 변명이 될 수 없습니다.

다행히도 MailerSend(MailerLite의 자매 회사)를 알게 되었고, 제 트래픽은 Mailgun의 Flex 플랜 대신 MailerSend의 무료 플랜에 적합합니다.

그 이후로 모든 설치에서 2525 포트를 사용했습니다.

수년간 잘 작동하던 사이트들이 이 문제로 갑자기 메일 전송을 중단한 사례가 여러 건 있었습니다.

discourse-setup에 대해 PR을 제출하여 이를 새로운 기본값으로 설정하는 데 동의하시나요?

pr-welcome 태그가 없다면요.

게다가 4자 수정에 불과합니다. PR을 승인하는 것보다 누군가 직접 변경 사항을 적용하는 것이 더 쉬울 가능성이 큽니다.

최근 Digital Ocean 서버에서 새로운 Discourse 인스턴스를 설정하는 과정에서 이 문제를 겪었습니다. 지원팀에 따르면 포트 587, 465, 25는 지원되지 않지만 2525는 작동해야 한다고 합니다. SMTP 설정을 포트 2525로 변경했지만 Brevo를 통한 활성화 이메일 전송이 여전히 작동하지 않아 다른 문제가 있는 것 같습니다.

SendGrid가 더 나은 선택지이거나 해당 서버 제공업체(Digital Ocean)와 더 잘 호환되는 것 같습니다. D.O. 지원팀이 다음과 같이 작성했습니다:

“SendGrid의 REST API를 사용하여 HTTP 요청을 통해 이메일을 전송할 수도 있습니다. 이는 전통적인 SMTP 프로토콜을 대신하는 방식으로, 귀하에게 적합하다면 사용할 수 있습니다. 또는 다른 제3자 전송 서비스를 활용할 수도 있습니다.”

REST API가 HTTP와 어떻게 작동하는지 모르겠습니다. 분명 SMTP보다 나은 방법일까요?

이런 문제가 발생해 죄송합니다. 2525 포트는 Discourse와 MailGun에서 정상적으로 작동합니다. MailGun의 Flex 플랜은 무료 등급을 포함한 종량제 요금입니다. 앱을 재빌드하지 않고 app.yml에서 SMTP 매개변수를 변경할 수 있으며, 편집 후 다음 명령을 실행하면 됩니다.

cd /var/discourse
./launcher destroy app
./launcher start app

https://www.mailgun.com/blog/email/which-smtp-port-understanding-ports-25-465-587/

저는 SMTP2GO, Google(워크스페이스 계정을 통해), MailGun, POBOX.com, 그리고 최근에는 MailerSend를 사용해 보았습니다. 제 생각에는 MailGun이 가장 직관적이고 사용하기 쉽습니다. MailerSend가 두 번째로 좋은 선택지가 될 수 있지만, 저는 기술 지원팀에게 Discourse가 Linux 호스트의 Docker 컨테이너에서 호스팅된다는 점, Linux 호스트에는 SSL 인증서가 필요하지 않다는 점 등을 설명해야 했습니다. 다행히 그들은 이를 이해하고 제 계정을 트라이얼 등급에서 상향해 주었습니다.

최근에 대화한 몇몇 클라이언트에 따르면, 더 이상 Mailgun의 Flex 플랜이 제공되지 않는 것 같습니다. 하루에 100개 이상의 메시지를 보내려면 월 $15가 부과됩니다.

포트 587이 차단되는 문제는 DigitalOcean 측의 문제입니다. DigitalOcean이 사전에 아무런 통보 없이 포트를 차단하기 시작하면서 메일 전송이 갑자기 중단된 클라이언트가 여러 명 있었습니다. 다만 포트 2525로 전환하는 것은 간단한 수정 사항입니다.

추천해 주셔서 감사합니다. 얼마 전에 Mailgun을 사용했는데 작동은 했지만 몇 가지 어려움이 있어 Brevo로 전환했습니다. Brevo가 조금 더 쉽게 작동하는 것 같았거든요. 최근 몇 달간 활성 사이트가 없었고, 지금은 새로운 사이트를 출시하기 위해 작업 중입니다.

다른 전송 서비스 중 하나나 SendGrid를 시도해 볼 수도 있겠네요. API 옵션이 Discourse와 호환되는지 확실하지 않은데, 이 기능을 사용하고 계신 분이 계신가요?

네, DO가 내 사이트 두 개를 차단했어요. 2525로 전환하니 이 문제가 해결됐습니다.

그리고 네, Mailgun은 더 이상 flex 플랜을 제공하지 않아요 (다만 기존 계정에는 유지하고 있습니다).

이 문제를 그들이 살펴볼 수 있도록 어떻게 그들의 주의를 끌어야 할까요?