gmail로 개인 스팸필터링하기
개인적으로 수십..은 뻥이고 gmail 계정을 몇개 갖고 있습니다만, gmail이 현존하는 무료로 사용할 수 있는 메일 중에서는 인터페이스와 스팸 필터링 기능에서 타의 추종을 불허하지요. 최근에 메일서버 관리가 너무 귀찮은 나머지 스팸 필터링을 gmail을 통해 보았습니다만 결과가 꽤 좋았습니다.
사전 준비
흐름
기본적인 흐름은 다음과 같습니다.
즉 필터링을 위해 gmail을 한번 돌아오도록 하는 것입니다. gmail에서 당길때에는 imap으로 당기지만 서버에 남기지 않고 받아오로록 합니다.
procmail셋업
$HOME/.procmailrc에 다음과 같이 추가합니다.
# gmail-filter
:0
* !^X-TEST-Quarantined: YES
| formail -A 'X-TEST-Quarantined: YES' | $SENDMAIL -oi [email protected]
두번 필터링하지 않도록 헤더를 하나 추가해 둡니다. 이름은 맘대로.
fetchmail셋업
$HOME/.fetchmailrc에 다음과 같이 추가합니다.
poll imap.gmail.com proto IMAP:
user "testq" there with password "암호" is 로컬계정 here fetchall options pass8bits ssl
사전 준비
- gmail 계정 (새로 가입하는게 좋지요) - [email protected] 이라고 합시다.
- 개인 계정 서버에 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 [email protected]
두번 필터링하지 않도록 헤더를 하나 추가해 둡니다. 이름은 맘대로.
fetchmail셋업
$HOME/.fetchmailrc에 다음과 같이 추가합니다.
poll imap.gmail.com proto IMAP:
user "testq" there with password "암호" is 로컬계정 here fetchall options pass8bits ssl