- 이메일은 본래 개방형 시스템이며, 2026년에는 배달 문제와 스팸을 관리하면서 집이나 VPS에서 운영해 소수 대기업에 메일을 맡기지 않을 수 있음
- 가정에서 운영하려면 블록리스트에 없는 고정 IPv4, CGNAT 미사용, PTR 레코드 변경 권한,
25·143·465·587·993 포트 개방이 필요하며, 조건이 맞지 않으면 VPS가 적합함
- SPF·DKIM·DMARC·MX·PTR를 올바르게 설정하고 mail-tester.com으로 배달 상태를 검사해야 하며, 짧은 인터넷 장애가 발생해도 발신 서버가 배달을 재시도함
- Rspamd의 GPT 플러그인과 로컬
Gemma 4 12B QAT 모델을 결합하면 외부 LLM API에 개인 메일을 보내지 않고도 스팸 확률과 판정 이유를 생성할 수 있음
- docker-mailserver와 Thunderbird·웹메일 클라이언트로 구축 장벽을 낮출 수 있지만, 운영자는 백업·복구·원격 접근·업데이트를 직접 책임지고 복구 절차를 최소 한 번 시험해야 함
집과 VPS 중 선택
- 일반적으로는 VPS가 권장되지만, 가정 인터넷이 다음 조건을 모두 충족하면 집에서도 메일 서버를 운영할 수 있음
- 블록리스트에 등재되지 않은 고정 IPv4 주소
- CGNAT 뒤에 있지 않은 회선
- ISP 지원 등을 통해 IP의 PTR 레코드를 변경할 수 있는 권한
- 일반적인 메일 서버 포트
25, 143, 465, 587, 993을 열 수 있는 환경
- 서버가 잠시 내려가도 발신 측 메일 서버가 배달을 재시도하므로 곧바로 수신 메일을 잃지는 않음
- 하루 중 인터넷 중단 시간이 40% 미만이면 정상적으로 작동할 수 있음
메일 서버 소프트웨어
도메인과 DNS 설정
- IP와 마찬가지로 도메인도 먼저 스팸 블록리스트 등재 여부를 확인해야 함
- 정상적인 발신과 수신에는 다음 DNS 레코드가 필요함
- SPF: 도메인을 대신해 메일을 보낼 수 있는 서버를 지정하며, 일반적인 값으로
v=spf1 mx a ~all을 사용할 수 있음
- DKIM: 발송 메일 헤더에 암호학적 서명을 추가하며, 서버가 안내한 이름과 공개 키 값을 도메인에 등록함
- DMARC: SPF와 DKIM을 확장해 도메인 위조를 방지하며, 값이 불확실하면 DMARC 생성기를 이용할 수 있음
- MX: 다른 서버가 메일을 배달할 위치를 지정함.
mail.yourdomain.com의 A 레코드를 서버 IP로 연결하고 MX 우선순위 10의 값으로 해당 호스트명을 설정하는 방식이 일반적임
- PTR 레코드는 ISP나 VPS 제공자만 설정할 수 있으며, 서버 IP가
mail.yourdomain.com 같은 실제 메일 서버 호스트명으로 역방향 해석돼야 함
- 일부 서버는 자동 서비스 탐지용 레코드를 추가로 권장하지만, SPF·DKIM·DMARC·MX·PTR가 기본 구성임
- 구축 후 mail-tester.com에서 레코드와 서버 동작, 메일 배달 상태를 검사하는 것이 권장됨
로컬 LLM을 이용한 스팸 차단
- 기존 오픈소스 스팸 차단은 IP·도메인 블록리스트, Spamhaus 같은 외부 서비스, 키워드 검색에 의존했으며 효과가 낮아 자체 호스팅 이탈의 주요 원인이었음
- 최근 2년 동안 로컬 LLM 분류가 자체 호스팅 환경의 스팸 문제를 해결할 수 있는 선택지로 등장함
- Rspamd는 블록리스트, IP·DNS 검사, 키워드 탐지에 더해 GPT 플러그인으로 이메일의 스팸 여부를 LLM에 분류시킬 수 있음
- 개인 메일을 외부 LLM API로 보내는 대신 Gemma 4 12B QAT를 로컬에서 실행함
- GPU나 CPU에서 실행할 수 있으며 최소 7GB RAM 또는 VRAM이 필요함
- 다국어를 지원해 이메일 분류에 활용할 수 있음
로컬 모델 실행과 Rspamd 연결
curl -LsSf https://llama.app/install.sh | sh
winget install llama.cpp
- 모델 서버는 다음과 같이 실행하며,
localhost:8080에서 채팅 인터페이스를 확인할 수 있음
llama serve -hf unsloth/gemma-4-12B-it-qat-GGUF:UD-Q4_K_XL --reasoning off -fa on -c 16000 --temp 0.7
- Rspamd의
/etc/rspamd/local.d/gpt.conf에서 type = "openai"와 로컬 /v1 엔드포인트를 지정하면 OpenAI 호환 인터페이스로 모델을 연결할 수 있음
- 모델은
unsloth/gemma-4-12B-it-qat-GGUF:UD-Q4_K_XL로 설정함
- 최대 출력 토큰은
100, 온도는 0.1, 시간 제한은 30초로 구성함
- GPU가 없는 LLM 서버에서는 시간 제한을 늘릴 수 있음
- 응답은 JSON으로 해석하며
spam이 아닌 probability 키를 요구함
- 프롬프트는 헤더·제목·본문을 분석해
0.0~1.0 사이의 스팸 확률과 짧은 판정 이유만 JSON으로 반환하도록 지시함
- 수신자별 대화 맥락 기능은 Redis에 최근 메일의 레이블, 주요 발신자, 512자 요약을 저장하고 5개 이상이 모이면 분류 프롬프트에 포함함
- 범위는 수신자별 메일함인
user
- 메시지 요약 보존 기간은
14일, Redis 키 수명은 30일
- 외부 호출 없이 로컬에서 동작함
- 스팸 메일에는 공포 기반 마케팅, 원치 않는 상업 콘텐츠, 의심스러운 국제화 도메인 등을 근거로 높은 확률을 반환할 수 있음
- 정상적인 기술 테스트 메일에는 의심스러운 링크나 홍보 문구가 없다는 이유로 낮은 확률을 반환할 수 있음
- Rspamd의 웹 인터페이스에서는 그래프와 데이터를 확인하고, 메일을 붙여 넣어 예상 분류 결과를 시험할 수 있음
메일 클라이언트 선택
- 데스크톱에서는 Thunderbird가 Outlook을 대체할 수 있는 기능성 높은 오픈소스 클라이언트임
- 필요한 기본 기능과 충분한 검색 기능을 제공함
- Android 앱도 제공함
- 3년간 사용하면서 문제가 없었음
- 웹메일이 필요하면 다음 선택지를 사용할 수 있음
유지보수와 운영 책임
- docker-mailserver 같은 현대적 메일 서버 솔루션은 보안 수정과 프로덕션 환경을 깨뜨리지 않는 자동 업데이트를 고려해 설계됨
- 자체 호스팅은 데이터 통제권을 제공하는 대신 백업, 복구, 원격 접근, 업데이트 책임을 운영자에게 돌려줌
- 백업이 없으면 모든 데이터를 잃을 수 있으므로 충분한 백업 계획을 마련하고 복구 절차를 최소 한 번 시험해야 함
- 조건과 운영 책임을 감당할 수 있다면 짧은 서버 중단에도 메일을 운영할 수 있으며, 데이터 주권을 중시하는 사용자는 자체 호스팅을 시도할 수 있음