qpsmtpd のインストール メモ

PerlでできたSMTPサーバー qpsmtpd をCentOS5.1にインストールした時のメモ。これを使えば、SpamAssassinや、ClamAVなどをプラグインしたり、自分で書いたプログラムを簡単にプラグインできる。

  • インストール
# yum -y install postfix system-switch-mail
# system-switch-mail (postfix にしておく。)
# wget http://www.hjp.at/apt/redhat/RPMS.qpsmtpd/qpsmtpd-0.40-1.0.noarch.rpm
# rpm -ivh qpsmtpd-0.40-1.0.noarch.rpm
warning: qpsmtpd-0.40-1.0.noarch.rpm: Header V3 DSA signature: NOKEY, key ID aeb83c2c
error: Failed dependencies:
        perl(Mail::Header) is needed by qpsmtpd-0.40-1.0.noarch
        perl(Net::DNS) is needed by qpsmtpd-0.40-1.0.noarch
        perl(Net::DNS::Header) is needed by qpsmtpd-0.40-1.0.noarch
        perl(Net::IP) is needed by qpsmtpd-0.40-1.0.noarch

perlモジュールをインストールする必要があるようだ。

# perl -MCPAN -e shell
cpan> install Mail::Header
cpan> install IO::Socket::INET6
cpan> install Net::DNS
cpan> install Net::DNS::Header
cpan> install Net::IP

インストール後、以下のコマンドでエラーが出なければ、PerlモジュールのインストールはOK。

# perl -MMail::Header -MIO::Socket::INET6 -MNet::DNS -MNet::DNS::Header -MNet::IP


それでも相変わらず依存関係のエラーは出るが、Perlモジュールは、CPANで管理するのでPerlモジュールの依存関係は無視してOKなので、以下のようにインストール。

# rpm -ivh --nodeps qpsmtpd-0.40-1.0.noarch.rpm
  • 設定

設定ファイルは、

/etc/sysconfig/qpsmtpd-forkserver

config ディレクトリは、デフォルトでは、

/etc/qpsmtpd

pluginディレクトリは、デフォルトでは、

/usr/share/qpsmtpd/plugins

になっているので注意。
何だかとてもトリッキーな感じ。

/etc/postfix/master.cf を以下のように編集。

#smtp      inet  n       -       n       -       -       smtpd

1行をコメントアウト

/etc/sysconfig/qpsmtpd-forkserver を以下のように編集

#QPSMTPD_OPTIONS="-p 25 -l 127.0.0.1 --pid-file /var/run/qpsmtpd-forkserver.pid"
QPSMTPD_OPTIONS="-p 25 --pid-file /var/run/qpsmtpd-forkserver.pid"
export QPSMTPD_CONFIG=/etc/qpsmtpd
export HOME=~smtpd

/etc/qpsmtpd/plugins を以下のように編集

#queue/qmail-queue
queue/postfix-queue
#queue/smtp-forward 127.0.0.1
  • 起動
# service postfix restart
# service qpsmtpd-forkserver restart