2008/04/01(火)FreeBSD で pop-before-smtp

ports の mail/popa3d-before-sendmail を make install して、sendmail.mc に

HACK(popauth)

と書けば終わり……なのですが、popa3dではなくdovecotをインストールした時の pop-before-smtp の設定メモ。

pop-before-smtp.pl

色々なメールソフトに対応した pop-before-smtp ツールです。ports の mail/pop-before-smtp からインストールできます。設定ファイルは Perl スクリプトになっていて /usr/local/etc/mail/pop-before-smtp-conf.pl にあります。dovecot と sendmail それぞれの該当部を有効にします。次に示した行を有効にし、=cut は削除します。

# Set the log file we will watch for pop3d/imapd records.
$file_tail{'name'} = '/var/log/maillog';

# For Dovecot POP3/IMAP when using syslog.
$pat = '^[LOGTIME] \S+ (?:dovecot: )?(?:imap|pop3)-login: ' .
    'Login: .*? (?:\[|rip=)[:f]*(\d+\.\d+\.\d+\.\d+)[],]';
$out_pat = '^[LOGTIME] \S+ (?:dovecot: )?(?:imap|pop3)-login: ' .
    'Disconnected.*? (?:\[|rip=)[:f]*(\d+\.\d+\.\d+\.\d+)[],]';

=cut #------------------------- Sendmail SMTP -------------------------START-
# If you comment-out (or remove) the two surrounding =cut lines, we'll
(中略)
=cut #------------------------- Sendmail SMTP ---------------------------END-

続いて Sendmail の設定に必要なファイルをコピーします。なぜか doc/ 以下にあります。

# cd /usr/share/sendmail/cf
# cp /usr/local/share/doc/pop-before-smtp/popauth.m4 ./

続いて /etc/mail 移動して sendmail.mc(ホスト名.mc)に次を書き加え、そのディレクトリで make して sendmail.cf(ホスト名.cf)を生成します。

define(`POP_B4_SMTP_TAG', `')dnl
HACK(popauth)

起動と設定

まず rc.conf に次を書き加えて、pop-before-smtp.pl を起動するように設定します。

pop_before_smtp_enable=YES

最後に sendmail の再起動と、pop_before_smtp.pl を起動を行います。

# /etc/rc.d/sendmail restart
# /usr/local/etc/rc.d/pop-before-smtp start

補足

ログファイルからIPを探知するので、dovecot側の設定は不要。