たいちょの部屋 qMail + APOP + POP before SMTP インストール手順書

・必要なファイル
qmail-1.03.tar.gz       [Qmail 本体
qmapop-0.51.tar.gz       [APOP & POP before SMTP プログラム
qmail-date-localtime.patch   [localtime 表示にするパッチ
qmail-smtpd-relay-reject    [不正な中継をさせないパッチ
ucspi-tcp-0.88.tar.gz     [TCP Server 本体
patch-2.5.tar.gz [Patch 本体
checkpassword-0.90.tar.gz [Checkpassword 本体

・インストール手順
$ mv /{ファイルの場所}/patch-2.5.tar.gz /tmp/
$ mv /{ファイルの場所}/checkpassword-0.90.tar.gz /tmp/
$ mv /{ファイルの場所}/qmail-1.03.tar.gz /tmp/
$ mv /{ファイルの場所}/qmapop-0.51.tar.gz /tmp/
$ mv /{ファイルの場所}/ucspi-tcp-0.88.tar.gz /tmp/
$ mv /{ファイルの場所}/qmail-date-localtime-patch /tmp/
$ mv /{ファイルの場所}/qmail-smtpd-relay-reject /tmp/
$ cd /tmp/

■Patchのインストール

$ gunzip patch-2.5.tar.gz
$ tar xvf patch-2.5.tar
$ cd patch-2.5
$ ./configure
$ make
# make install

・標準のPatch コマンドを待避して、コンパイルしたものを有効にする。

# mv /usr/bin/patch /usr/bin/patch.sun
# ln -s /usr/local/bin/patch /usr/bin/patch

■qMailのインストール

Red Hat Linux 9 以降で qmail がインストールできない。
Red Hat Linux 9 で qmail の make setup check を行うと下記のエラーが発生します。
これは glibc のバージョンアップによるものです。
glibcのバージョンが 2.3.1 以降で起きます。

undefined reference to 'errorno'
collect2: ld はステータス 1 で終了しました
make: *** [auto-str] エラー 1
この問題を解決するには、error.h を書き換える必要があります。

extern int errno;
この行を下記のように修正します。

#include <errno.h>
修正した後に make setup check を実行します。ucspi-tcp、checkpassword も同様の修正が必要です。
また、http://www.qmail.org/moni.csi.hu/pub/qmail/glibc-2.3.1/からパッチを入手し、
下記(qmailの例)のように修正を適用することもできます。

$ cd qmail-1.03 $ patch -p1 /path/to/qmail-1.03.errno.patch

・TCP Server のセットアップ

# cd /usr/tmp/
# tar zxvf ucspi-tcp-0.88.tar.gz -C src
# cd src/ucspi-tcp-0.88
# make
# make setup check

・qMail のインストール

$ gunzip qmapop-0.51.tar.gz
$ tar xvf qmapop-0.51.tar
~~~~~~~~~
$ gunzip qmail-1.03.tar.gz
$ tar xvf qmail-1.03.tar
   ~~~~~~~~~
$ cp qmail-date-localtime.patch qmail-1.03
$ cp qmail-smtp-relay-reject qmail-1.03
$ cd qmail-1.03
$ patch < qmail-date-localtime.patch
   ~~~~~~~~~
$ patch < qmail-smtpd-relay-reject
   ~~~~~~~~~
$ patch < ../qmapop-0.51/qmail-popup.c.patch
   ~~~~~~~~~
$ su
# mkdir /var/qmail
# vi /etc/group

   ~~~ 追加 ~~~
qmail:x:2107:
nofiles:x:2108:
   ~~~~~~~~~~
~~~~~~~~~Linux~~~~~~~~~~~~~~
# vipw

   ~~~ 追加 ~~~
alias:*:7790:2108::0:0::/var/qmail/alias:/nonexistent
qmaild:*:7791:2108::0:0::/var/qmail:/nonexistent
qmaill:*:7792:2108::0:0::/var/qmail:/nonexistent
qmailp:*:7793:2108::0:0::/var/qmail:/nonexistent
qmailq:*:7794:2107::0:0::/var/qmail:/nonexistent
qmailr:*:7795:2107::0:0::/var/qmail:/nonexistent
qmails:*:7796:2107::0:0::/var/qmail:/nonexistent
apopdb:*:7797:2107::0:0::/var/qmail/apopdb:/nonexistent
   ~~~~~~~~~


~~~~~~~~~Soralis~~~~~~~~~~

useradd -g qmail -d /var/qmail qmailq
useradd -g qmail -d /var/qmail qmailr
useradd -g qmail -d /var/qmail qmails
useradd -g nofiles -d /var/qmail/alias alias
useradd -g nofiles -d /var/qmail qmaild
useradd -g nofiles -d /var/qmail qmaill
useradd -g nofiles -d /var/qmail qmailp
useradd -g nofiles -d /var/qmail/apopdb apopdb


# make setup check
# make check


  ==ドメインがDNSに登録されている場合(mail.aaaaaa.comまで入れる。)==
# ./config {ドメイン名}
  ==ドメインがDNSに登録されていない場合(mail.aaaaaa.comまで入れる。)==
# ./config-fast {ドメイン名}


# cd ..
# cp qmail-1.03/compile qmapop-0.51
# cp qmail-1.03/load qmapop-0.51
# cd qmapop-0.51
# vi conf-opensmtp.h

    #define OPENSMTP "/usr/local/bin/pop3-record"
    /* #undef OPENSMTP */

# make
# make install
# cd /var/qmail/alias
# touch .qmail-root .qmail-postmaster .qmail-mailer-daemon

root宛のMAILを自分に転送したい場合
# vi .qmail-root

    &{ユーザー名}

とする。

# echo '&root' > .qmail-bin
# echo '&root' > .qmail-daemon
# echo '&root' > .qmail-games
# echo '&root' > .qmail-ingres
# echo '&root' > .qmail-nobody
# echo '&root' > .qmail-system
# echo '&root' > .qmail-toor
# echo '&root' > .qmail-uucp
# echo '&root' > .qmail-usenet
# echo '&root' > .qmail-news
# echo '&root' > .qmail-www-admin
# chmod 644 .qmail-*
# /var/qmail/bin/maildirmake $HOME/Maildir
# echo ./Maildir/ > ~/.qmail
#cd /var/qmail

SMTPリレー制御(tcpserverを制御)の設定。

# vi /service/smtpd/tcp.smtp

    202.221.255.:allow,RELAYCLIENT=""
:allow


DBファイルのクリエイト
# tcprules /service/smtpd/smtp.cdb /service/smtpd/smtp.tmp < /service/smtpd/tcp.smtp


起動スクリプトの作成。

# vi rc

#!/bin/sh

# Using splogger to send the log through syslog.
# Using qmail-local to deliver messages to ~/Mailbox by default.
# chkconfig: - 85 15
# description: qMail is a mail server.
#

exec env - PATH="/var/qmail/bin:$PATH" \
qmail-start ./Maildir splogger qmail &

/usr/local/bin/tcpserver -HRD -l mail.meet.co.jp -c 100 0 pop3 /var/qmail/bin/qmail-popup local.hosts.co /var/qmail/bin/checkpassword /var/qmail/bin/qmail-pop3d Maildir &

/usr/local/bin/tcpserver -v -u 7791 -g 2108 -x /service/smtpd/smtp.cdb 0 smtp /var/qmail/bin/qmail-smtpd 2>&1 | /var/qmail/bin/splogger smtpd 3 &


 -v デバックモード


# chmod 755 /var/qmail/rc
# mkdir /var/qmail/apopdb
# /var/qmail/bin/apop -\i
# /var/qmail/bin/apop -u {ユーザー名}
# cd /usr/tmp/src/qmapop-0.51
# install -m 755 pop3-record /usr/local/bin
# install -m 755 age-smtp /usr/local/bin
# mkdir -p /service/smtpd
#crontab -e

      */5 * * * * /usr/local/bin/age-smtp

qMailで、SENDMAILコマンドを使えるようにする。

mv /usr/lib/sendmail /usr/lib/sendmail.old
ln -s /var/qmail/bin/sendmail /usr/lib/sendmail



Back