오묘한 procmail 세상…

마이크로 소프트웨어 1월호를 읽던 중 spam 관련된 기사가 몇 개 실렸길래 재밌게 읽어봤습니다. 불량단어 목록을 외부로 빼서 필터링하는 기법이 소개되었더군요. 웹을 통한 관리까지는 도입할 생각이 없지만, 단어 목록을 외부로 빼면 좀 더 관리가 편해질 듯 하더군요.

뭐 하튼 이래저래 해서 오랫만에 procmail 로 구글링을 해봤습니다. 그러다가 맘에 드는 procmail rule 관련 사이트를 찾아냈습니다!

http://procmail.episode.co.kr/

위 사이트를 운영하시는 분의 procmail 파일은 정말 대단합니다. 보고 있음 눈이 마구마구 돌아가네요. 다만 공개된 rule 대부분은 mimencode / hcode 를 이용해서 base64/quoted print 등으로 인코딩된 mail body 를 euc-kr 로 변환을 시키고 있다는게 개인적으로 상당히 싫습니다 -_-!

그래서 제목 관련해서 좀 더 똑똑하게 필터링을 할 수 있는 방법을 간단하게 작성해서 테스트 해봤습니다 :)

[spoiler]
[/spoiler]

procmail 만으로 짜려고 했기 때문에 코드가 지저분하고 비효율적이 되버렸습니다 -_-! 하튼 MATCH 를 활용하는 법을 써본 건데 생각한대로 잘 작동하긴 하네요.

  1. =?charset?transfer_encoding?encoded_string?= 형식으로 된 문자열을 디코딩한 후 utf-8 로 변환
  2. &#unicode; 식으로 인코딩된 글자들을 찾아서 utf-8 로 변환

결과적으로 위와 같은 행동을 하는 필터를 간단하게 작성한 다음에 추출한 제목/본문 을 통과시키고 불량 단어 목록과 매치 시킨다면 예전보다 훨씬 강력하게 필터링이 가능할거라 생각합니다. 요번 주 음주 스케쥴을 대강 소화한 후 적용을 해봐야겠습니다. 꺄하하핫

p.s) mozilla 의 chardet 등을 이용하면 Content-type 에 charset 이 명시되어 있지 않더라도 말끔히 처리할 수 있을 듯 하지만, 내겐 너무 다가가기 어려운 mozilla 입니다.

Published by

One thought on “오묘한 procmail 세상…”

  1. 대단하게 봐주셔서 감사합니다. ^^
    님의 코드도 좋은데요 ^^
    지금까지 다국어에 대해서는 아예 생각도 하지 않았는데
    생각해봐야할거같네요.

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">