CentOSでpymilterをインストールしたメモ(2)
以下のエントリの続き
CentOSでpymilterをインストールしたメモ - いわゆる備忘録
持ってきたpymilterのは以下にはサンプル(sample.py)が含まれている。
それを簡単に書き換えて使ってみる
設定
- sample.pyを書き換える
# A simple milter. # Author: Stuart D. Gathman <stuart@bmsi.com> # Copyright 2001 Business Management Systems, Inc. # This code is under GPL. See COPYING for details. import sys import os import StringIO import rfc822 import mime import Milter import tempfile from time import strftime #import syslog #syslog.openlog('milter') class sampleMilter(Milter.Milter): def log(self,*msg): pass def __init__(self): pass def envfrom(self,f,*str): if f == 'hogehoge@example.com': self.setreply('500', '5.7.1', 'go home') return Milter.REJECT return Milter.CONTINUE def envrcpt(self,to,*str): return Milter.CONTINUE def header(self,name,val): return Milter.CONTINUE def eoh(self): return Milter.CONTINUE def body(self,chunk): return Milter.CONTINUE def eom(self): return Milter.ACCEPT def close(self): return Milter.CONTINUE def abort(self): return Milter.CONTINUE if __name__ == "__main__": socketname = "/tmp/sample.sock"; Milter.factory = sampleMilter Milter.set_flags(Milter.CHGBODY + Milter.CHGHDRS + Milter.ADDHDRS) sys.stdout.flush() Milter.runmilter("pythonfilter",socketname,240) print "sample milter shutdown"
- Postfixの設定を修正する。
vi /etc/postfix/main.cf
smtpd_milters = unix:/tmp/sample.sock
- Postfixを再起動する
/etc/init.d/postfix restart
- sample.pyを起動する
nohup sudo -u postfix python sample.py &