Show HN: Posthorn, 메일 서버 없이 자체 호스팅 메일
Source: Hacker News
소개
Posthorn은 자체 호스팅 이메일 게이트웨이입니다. 단일 Docker 컨테이너(또는 Go 바이너리)로 실행되며, VPS에 있는 자체 호스팅 애플리케이션과 트랜잭션 이메일 제공자 사이에 위치합니다. Posthorn을 한 번 설정하고 애플리케이션을 가리키게 하면 바로 사용할 수 있습니다.
문제점
많은 VPS 제공업체(예: DigitalOcean)는 남용 방지를 위해 기본 SMTP 포트를 차단합니다. 이 때문에 개발자는 다음과 같은 방법을 사용해야 합니다.
- Ghost와 같은 앱에서 메일을 보내기 위해 맞춤형 Postfix 릴레이를 배포해야 함.
- 정적 사이트 연락 양식을 위해 서드파티 서비스(예: Formspree)를 사용하지만, 사용 제한에 걸리거나 필요한 안티 스팸 기능이 부족함.
- Gitea, Mastodon, Umami, Comentario 등 여러 서비스에서 동일한 이메일 전송 로직을 재구현해야 하며, 모두 같은 SMTP 제한에 직면함.
이러한 반복적인 문제들은 간단하고 통합된 해결책이 없습니다.
Posthorn이 하는 일
Posthorn은 작은 Go 바이너리(≈10 MB Docker 이미지)로, 애플리케이션과 선택한 트랜잭션 이메일 제공자 사이의 게이트웨이 역할을 합니다. 지원 기능은 다음과 같습니다.
- 제공자: Postmark, Resend, Mailgun, Amazon SES 또는 모든 아웃바운드 SMTP 릴레이.
- HTML 폼 처리: 정적 사이트 연락 양식의
POST요청을 받아, 허니팟 필드, 출처 검사, IP 속도 제한 등 보안 레이어를 추가합니다. - JSON HTTP API: 백엔드 스크립트나 크론 작업을 위한 Bearer 인증이 적용된
/send엔드포인트.
한눈에 보는 특징
| 기능 | 설명 |
|---|---|
| 단일 바이너리 / Docker 이미지 | 모든 VPS에 손쉽게 배포 가능. |
| 다중 제공자 지원 | 애플리케이션 코드를 변경하지 않고 제공자를 전환 가능. |
| 폼 POST 처리 | 내장 안티 스팸(허니팟, 출처 검사, 속도 제한). |
| Bearer‑auth JSON API | 스크립트를 위한 간단한 /send 엔드포인트. |
| 오픈 소스 | Apache 2.0 라이선스; 기여 환영. |
사용 방법
- Docker 컨테이너를 배포하거나 Go 바이너리를 실행합니다.
- 제공자 자격 증명(Postmark, Resend, Mailgun, SES 또는 SMTP)을 설정합니다.
- **애플리케이션(또는 정적 사이트 폼)**을 Posthorn 엔드포인트로 지정합니다.
- JSON API 또는 표준 SMTP 릴레이를 통해 메일을 전송합니다.
링크
- 소스 코드:
- 문서:
- 자세한 글:
- 문제에 대한 HN 토론:
- 이 게시물에 대한 댓글: