2009년 6월 4일 목요일

gmail로 개인 스팸필터링하기

개인적으로 수십..은 뻥이고 gmail 계정을 몇개 갖고 있습니다만, gmail이 현존하는 무료로 사용할 수 있는 메일 중에서는 인터페이스와 스팸 필터링 기능에서 타의 추종을 불허하지요. 최근에 메일서버 관리가 너무 귀찮은 나머지 스팸 필터링을 gmail을 통해 보았습니다만 결과가 꽤 좋았습니다.

사전 준비
  • gmail 계정 (새로 가입하는게 좋지요) - testq@gmail.com 이라고 합시다.
  • 개인 계정 서버에 procmail과 fetchmail (저는 FreeBSD쓰니까요)
  • Unix기반의 개인 메일 서버가 있다고 가정합니다.


흐름

기본적인 흐름은 다음과 같습니다.

  • 외부 메일 -> 개인 메일 서버 [ procmail ] -> gmail -> (스팸필터링) -> [ fetchmail ] -> 개인메일서버


즉 필터링을 위해 gmail을 한번 돌아오도록 하는 것입니다. gmail에서 당길때에는 imap으로 당기지만 서버에 남기지 않고 받아오로록 합니다.

procmail셋업

$HOME/.procmailrc에 다음과 같이 추가합니다.
# gmail-filter
:0
* !^X-TEST-Quarantined: YES
| formail -A 'X-TEST-Quarantined: YES' | $SENDMAIL -oi testq@gmail.com

두번 필터링하지 않도록 헤더를 하나 추가해 둡니다. 이름은 맘대로.

fetchmail셋업

$HOME/.fetchmailrc에 다음과 같이 추가합니다.

poll imap.gmail.com proto IMAP:
user "testq" there with password "암호" is 로컬계정 here fetchall options pass8bits ssl

댓글 없음: