POP(tcpserver)のインストール
POPはtcpserverから起動されます。tcpserverはucspi-tcpパッケージの一部として提供されており、inetdなどの従来のサービス起動プロセスよりもDoS攻撃などにも対応できるように同時接続制限が設定できる、制御ファイルは独自データベースファイル(cdb)を採用しているため、高速な処理が可能、設定変更にサービス再起動が必要ない、などメリットがあります。
POPでメールを読む際にパスワードの暗号化でapopをインストールします。
POPソース、コンパイル
checkpw-1.03.tar.gzをダウンロード、コンパイル、インストール
wget http://sourceforge.net/projects/checkpw/files/checkpw/checkpw-1.03/check...
解凍後 cd chekpw-1.03/
	make
	make setup check
/bin/checkapoppw が出来ているか確認します。
	ls -al /bin/checkapoppw
	-rwx------ 1 root root 18784  7月 30 17:27 /bin/checkapoppw
tcpserverのインストール
wget http://www.emaillab.org/djb/tools/ucspi-tcp/ucspi-tcp-0.88.tar.gz
パッチucspi-tcp-0.88.errno.patchをダウンロード
wget http://qmail.org/moni.csi.hu/pub/glibc-2.3.1/ucspi-tcp-0.88.errno.patch
ucspi-tcp-0.88.tar.gzを解凍し、そのディレクトリに移動 cd ucspi-tcp-0.88
パッチ ucspi-tcp-0.88.errno.patch を適用
patch < ../ucspi-tcp-0.88.errno.patch
	make 
	make setup check
その後、tcpserver を起動するためにLinux再起動
設定
tcpserverからの呼び出し
tcpserver からPOPを呼び出すために、起動スクリプト /etc/init.d/qmail のPOPの以下の行コメントを外します。
	 # For POP3
	#       sh -c "/sbin/start-stop-daemon --start --quiet --user root \
	#       --pidfile /var/run/tcpserver_pop3d.pid --make-pidfile \
	#       --exec /usr/local/bin/tcpserver -- -v -u 0 -g 0 0 pop3 \
	#       /var/qmail/bin/qmail-popup \
	#       usuzumi.ep.sci.hokudai.ac.jp /bin/checkapoppw \
	#       /var/qmail/bin/qmail-pop3d Maildir 2>&1 \
	#       | /var/qmail/bin/splogger pop3d 3 > /dev/null 2>&1 &"
以下のstopの部分もコメントを外します。
# /sbin/start-stop-daemon --user root --stop --quiet --oknodo --pidfile /var/run/tcpserver_pop3d.pid --exec /usr/local/bin/tcpserver # pop3
以下のようになります。hoge.jp /bin/checkapoppw \ hoge.jpにはホスト名を記載します。
	# For POP3
	        sh -c "/sbin/start-stop-daemon --start --quiet --user root \
	        --pidfile /var/run/tcpserver_pop3d.pid --make-pidfile \
	        --exec /usr/local/bin/tcpserver -- -v -u 0 -g 0 0 pop3 \
	        /var/qmail/bin/qmail-popup \
	        hoge.jp /bin/checkapoppw \
	        /var/qmail/bin/qmail-pop3d Maildir 2>&1 \
	        | /var/qmail/bin/splogger pop3d 3 > /dev/null 2>&1 &"
/sbin/start-stop-daemon --user root --stop --quiet --oknodo --pidfile /var/run/tcpserver_pop3d.pid --exec /usr/local/bin/tcpserver # pop3
qmailの再起動: /etc/init.d/qmail restart
この時点、qmailの動作ステータスを確認するとワーニングが出ていて、'systemctl daemon-reload' を実行すればワーニングはなくなります。
	Warning: The unit file, source configuration file or drop-ins of qmail.service changed on disk. Run 'systemctl daemon-reload' to reload units.
	● qmail.service - LSB: Start and stop qmail
	   Loaded: loaded (/etc/init.d/qmail; generated)
	   Active: active (exited) since Fri 2021-07-30 17:57:22 JST; 16min ago
	     Docs: man:systemd-sysv-generator(8)
	 7月 30 17:57:22 netqmail systemd[1]: Starting LSB: Start and stop qmail...
	 7月 30 17:57:22 netqmail qmail[449]: Startig mail-transfer agent: qmail.
	 7月 30 17:57:22 netqmail systemd[1]: Started LSB: Start and stop qmail.
	 7月 30 17:57:23 netqmail qmail[453]: 1627635443.017296 status: local 0/10 remote 0/20
systemctl daemon-reload
qmailの動作ステータスを確認し、ワーニングがないことを確認します。
	 systemctl status qmail
	● qmail.service - LSB: Start and stop qmail
	   Loaded: loaded (/etc/init.d/qmail; generated)
	   Active: active (exited) since Fri 2021-07-30 17:57:22 JST; 17min ago
	     Docs: man:systemd-sysv-generator(8)
	    Tasks: 0 (limit: 1138)
	   Memory: 0B
	   CGroup: /system.slice/qmail.service
	 7月 30 17:57:22 netqmail systemd[1]: Starting LSB: Start and stop qmail...
	 7月 30 17:57:22 netqmail qmail[449]: Startig mail-transfer agent: qmail.
	 7月 30 17:57:22 netqmail systemd[1]: Started LSB: Start and stop qmail.
	 7月 30 17:57:23 netqmail qmail[453]: 1627635443.017296 status: local 0/10 remote 0/20
POP3動作の確認
	 ps aux | grep qmail
	qmails     851  0.0  0.0   2340   680 pts/0    S    18:13   0:00 qmail-send
	qmaill     853  0.0  0.0   2292   744 pts/0    S    18:13   0:00 splogger qmail
	root       854  0.0  0.0   2292   676 pts/0    S    18:13   0:00 qmail-lspawn ./Mailbox
	qmailr     855  0.0  0.0   2284   736 pts/0    S    18:13   0:00 qmail-rspawn
	qmailq     856  0.0  0.0   2284   740 pts/0    S    18:13   0:00 qmail-clean
	root       857  0.0  0.1   2404  1732 pts/0    S    18:13   0:00 /usr/local/bin/tcpserver -v -u 0 -g 0 0 pop3 /var/qmail/bin/qmail-popup netqmail.ijinden.jp /bin/checkapoppw /var/qmail/bin/qmail-pop3d Maildir
	root       858  0.0  0.0   2292   736 pts/0    S    18:13   0:00 /var/qmail/bin/splogger pop3d 3
	root       898  0.0  0.0   4332   888 pts/0    S+   18:19   0:00 grep qmail
~/Maildir/ への配送
環境変数の設定
POPによるメールの呼び出しは、Maildir形式で行います。/etc/profile に次の 2 行を追加します。
	MAILDIR="$HOME/Maildir/"
	export MAILDIR
cshは /etc/csh.cshrc に次の 1 行を追加します。
setenv MAILDIR $HOME/Maildir/
配送テスト
配送テストのために、一般ユーザーで以下の設定を行う。
~/Maildir の作成
maildirmake のスクリプトでMaildir ディレクトリを作成する。
$ maildirmake ~/Maildir
.qmail の編集
~/Maildir への配送を qmail に指示する (.qmail へ配送先ディレクトリを記述)
	$ echo ./Maildir/ >> ~/.qmail
	$ chmod 600 ~/.qmail
	$ ls -la ~/.qmail
	-rw------- 1 hodota hodota 21  7月 31 12:51 /home/hodota/.qmail
.qmail のパーミッションは、600 か 644 でなければならない。実行許可が出ていないことと、オーナー以外に書き込みが許可されていないことが要求される。
以上の作業は各ユーザごとに行わねばならなので、/etc/skel/ 以下 に .qmail や Maildir/ を置いておけば、adduser コマンドを用いてアカウ ントを新規に作ったときにできるホームディレクトリ内にこれらは自動で入ります。 新規にアカウントを取得する一般ユーザは、以上の作業が不要になります。
	cp -ar /home/hodota/.qmail /etc/skel/
	chown -R root:root /etc/skel/.qmail
	cp -ar /home/hodota/Maildir /etc/skel/
	chown -R root:root /etc/skel/Maildir/
認証パスワードの設定
~/Maildir/.password ファイルを作成します。 APOPPASSWORDは自分で考えたパスワードに変更します。APOPPASSWORDがPOP でメールを読むときの認証パスワードとなり、パーミッションを600としないとPOPが機能しません。
	$ echo 'APOPPASSWORD' > ~/Maildir/.password
	$ chmod 600 ~/Maildir/.password
テスト
配送テストを行う. 自分に送ってみる. 以下のコマンドを実行する.
$ echo to: chikuwaXX | /var/qmail/bin/qmail-inject
メールソフトで受信テストします。
	受信サーバ: POP3
	サーバのホスト名: mail.xxxxxx.jp
	受信サーバのポート番号: 110
	受信サーバの SSL: 接続の保護なし
	認証方式: 暗号化されたパスワード認証 




