트랜잭션 이메일 서비스 (오픈소스)

안녕하세요, 모두가 전용 이메일 서비스를 추천하는 것을 봤습니다. 여러분 중 오픈소스 대안을 사용하거나 사용해 본 분이 있을까요? 예를 들어 postal이나 cuttlefish 같은 것들요.

물론, 최소한 발신 이메일 처리를 위해 자체 서버를 사용하는 것은 막대한 이점을 가져다줄 것입니다. SendGrid나 Mailgun 같은 서비스는 월 100만 건 이상의 알림을 보내는 커뮤니티가 있다면 비용이 많이 듭니다. 설정을 살펴보면, 사용자가 하루에 250~300건의 이메일 알림을 매우 쉽게 받을 수 있습니다… 활성 커뮤니티가 있다면 제 계산에 따르면 최소 100만 건을 초과하거나 매우 근접하게 됩니다.

그리고 어쨌든, 각 게시물이나 30분 간격의 요약 이메일을 설정해 두었다가 이후에는 더 이상 로그인하지 않는 사용자를 어떻게 관리하시나요? 일부 사용자가 악의로 이렇게 할 수도 있습니다요. 몇 개월 이상 비활성인 사용자의 설정을 변경하시나요?

미리 감사드립니다!

이것이 실제로 겪고 있는 문제인지, 아니면 상상하는 문제인지요? 인간 스팸러를 처리하는 것은 일부 커뮤니티에서 문제가 되지만, 대부분의 커뮤니티에서는 그렇지 않습니다.

네, 만약 한 달에 100만 통의 이메일을 보내는 상황이라면 웹 서버를 운영할 수 있는 인력이 있을 수 있습니다. 하지만 여기서는 그러한 것을 지원하지 않으며, 그래서 해당 도구들은 각각 별도의 커뮤니티를 가지고 있습니다. 대부분의 사람들에게 메일 서버 관리는 큰 부담이 되기 때문에, 그러한 서비스들이 권장되는 것입니다.

솔직히 왜 어렵다는 말이 이해가 되지 않습니다. 모든 것을 단순하게 관리하기 위해 특별히 만들어진 오픈소스 프로젝트들이 있습니다. 포럼을 관리하는 것조차 어렵지만, Discourse는 모든 것을 최대한 단순하게 만들기 위해 만들어진 CMS입니다. Postal이 설치되고 DNS가 제대로 설정되면(외부 서비스도 마찬가지이며, 그렇지 않으면 동일한 문제가 발생합니다), 어떤 문제가 있을 수 있을까요?

해야 할 일은 Discourse와 호환되는지, 모든 기능이 정상적으로 작동하는지 테스트하는 것뿐입니다(예: 수신에도 사용하고 이메일로 답장하는 기능을 활성화하는 등). 그래서 저는 이런 오픈소스 프로젝트 중 어떤 것을 사용 중인지 물어본 것입니다.

제가 틀렸을 수도 있지만, "이메일 서버를 관리하는 것이 너무 어렵기 때문에 유료 서비스를 사용해야 한다"는 말은 그저 변명이라고 생각합니다. Discourse를 설치하는 방법을 안다면, 조금만 노력하면 Postal 같은 다른 CMS도 설치할 수 있습니다.

스팸 때문이죠. 하지만 한번 시도해 보세요. 설정을 꽤 쉽게 만들어 주는 여러 패키지가 있습니다.

저는 mail-in-a-box와 mail-receiver를 사용하는데, (postfix 설정을 조금 조정하면) 잘 작동합니다. 어렵다기보다는 meta의 지원 범위 밖이라서 그렇습니다. 게다가 IP와 도메인 평판 관리도 꽤 번거롭습니다. 갑자기 사용자에게 550 5.7.1 오류를 내는 무작위 ISP가 아니라면 구글이 문제인데…:face_with_symbols_over_mouth: . 끝이 없는 것 같습니다.

제가 걱정하는 부분은 사용자가 카테고리를 구독한 후, 새로운 주제나 게시글이 올라올 때마다 이메일을 받는 경우입니다. 만약 사용자가 비활성 상태라면 어떻게 해야 할까요? 한 달에 하루 100통씩, 즉 비활성 상태이지만 이전에 이 설정을 활성화했던 회원들에게도 3,000통의 이메일을 계속 보내야 하는 건가요?

카테고리 구독 기능을 비활성화할 방법이 있을까요? 주제별 구독만 가능하도록 하면 모든 문제가 해결될 것 같습니다.

사용자당 하루 최대 이메일 수 매개변수도 유용할 수 있습니다(기본값: 100)

직접 사용해 보지는 않았지만, suppress digest email after days 옵션도 도움이 될까요?

postal 때문에 여기 왔습니다. 질문들이 관련 있다고 생각하며, 다음을 제안하고 싶습니다.

Discourse Data Explorer 을 사용하면, 이메일을 받고 있지만 6개월 이상 로그인하지 않은 사용자를 찾아낼 수 있는 방법이 있을 것 같습니다. 그런 다음, 여전히 관심 있는지 아니면 이메일을 무시하고 있는지 여부에 대해 확인하는 이메일을 보내면 됩니다. 만약, 예를 들어, 일주일 후에 답장이 없다면 이메일 전송을 중단하고, 궁극적으로 계정 인증을 요구해야 합니다(즉, 비활성으로 인해 계정을 정지하는 것). :green_heart:

이렇게 하면 수천 개의 Discourse 인스턴스를 통해 인터넷으로 쓸모없는 이메일을 보내지 않음으로써 상당한 CPU 사이클과 네트워크 대역폭(그리고 전력과 물…)을 절약할 수 있을 것입니다. :green_heart:

이미 거의 그렇게 작동하고 있습니다. “suppress digest email after days” 사이트 설정을 사용하면 됩니다.

그 설정은 모든 이메일, 예를 들어 감시 중인 카테고리의 새 게시물 알림 등을 차단하나요?

아니요. 그렇지 않습니다. 많은 사람들이 이메일로만 디스코르스를 사용합니다(나에게는 이상해 보이지만, 모든 사람이 나처럼 같은 취향인 것은 아니죠).

만약 특정 기간 동안 로그인하지 않은 사용자에게 모든 메일 발송을 중단하고 싶다면, 제안하신 것과 같은 기능을 수행하는 플러그인이 필요합니다. 예를 들어, 특별 헤더를 포함하여 로그인 링크를 경고용으로 보낸 뒤 계정을 비활성화하는 방식이 될 수 있겠죠.

전력 소비 측면에서 측정 가능한 차이를 만들지는 못할 것 같습니다. 바쁜 카테고리를 여러 사용자가 동시에 보고 있지 않는 한, 메일 비용 측면에서도 큰 차이는 없을 가능성이 높습니다. 만약 그것이 목표라면, 그렇게 할 가치가 없을 것입니다.

아마도 Amazon SES를 통해 이메일을 라우팅하는 방법을 시도해 볼 수 있습니다.

이메일(적어도 이메일의 이 측면은)은 스스로 정리되는 것 같습니다. 구독을 취소하는 것이 쉽고, 사람들이 회사를 옮기면 이메일이 반송되기 시작하거든요.