:CentOS
:Linux

CentOS4+dovecot で POP before SMTP

今更ながら POP before SMTP をCentOSで実装します。
同機能を qpopper で実装していたのですが、SMTP Auth と併用を考えてdovecotを使うように変更しました。

インストールするもの

  • postfix
  • dovecot
    以上は yum を使ってインストール

dovecot の設定

# vi /etc/dovecot.conf

protocols = pop3
imap_listen = *
pop3_listen = *
log_path = /var/log/dovecot
info_log_path = /var/log/dovecot
log_timestamp = "%b %d %H:%M:%S "

pop-before-smtp の設定

# vi /etc/pop-before-smtp-conf.pl

$logto = '/var/log/pop-before-smtp';
$dbfile = '/etc/postfix/pop-before-smtp';
$grace = 10*60; # ログイン可能時間を10分とする
$file_tail{'name'} = '/var/log/dovecot';
$pat = '^pop3-login: (... .. ..:..:..) Info: ' .
   'Login: .+ \[(\d+\.\d+\.\d+\.\d+)\]';
=cut #====================== Postfix BerkeleyDB =======================START=
=cut #====================== Postfix BerkeleyDB =========================END=

の "=cut" を削除

postfix の設定

# vi /etc/postfix/main.cf

mynetworks = 127.0.0.0/8 #mynetworksを明記しないと pop-before-smtp が起動しない
smtpd_recipient_restrictions = permit_mynetworks,
     check_client_access hash:/etc/postfix/pop-before-smtp,
     reject_unauth_destination

起動

postfix, dovecot および pop-before-smtp を起動する

/etc/rc.d/init.d/postfix start
/etc/rc.d/init.d/dovecot start
/etc/rc.d/init.d/pop-before-smtp start

pop3でアクセスし、 /var/log/pop-before-smtp に

Jan  1 00:00:00 added xxx.xxx.xxx.xxx to DB

といったログが残ればOK