[Memo2008][EPA]tako作業メモ(納多)(080724)

qpopper

メーラーから Mailbox のメールを受け取れないトラブルの解決

メーラーから /home/chikuwa1/Mailbox のメールを受け取れない問題が発生した.

qmail と qpopper の同時運用例を検索してみたところ, 以下のページを見つけた.

それによると, configure に

--enable-home-dir-mail=Mailbox

が必要のようである. configure の help によると, デフォルトのメールスプールファイルは .mail になる.

つまりこの問題の原因は, qpopper が .mail を見に行くため Mailbox にメールがあっても受け取れないことにあるのでは, と考えた.

Mailbox のメールを見に行くよう再設定し, 再インストールを試みる.

# cd /usr/local/src/qpopper4.0.13
# ./configure \
--prefix=/usr/local/qpopper \    # インストール場所
--enable-apop=/usr/local/qpopper/pop.auth \   # APOP の設定ファイルの場所
--enable-popuid=pop \   # qpopper を動作させるユーザ
--enable-shy \          # qpopper のバージョン番号を隠蔽
--enable-nonauth-file=/usr/local/qpopper/popusers \  # 接続拒否ユーザを書いたリストの場所
--without-pam \    # POP3 に PAM による認証を行わない
--with-gdbm   \    # データベースの取り扱いに GDBM を使う
--enable-home-dir-mail=Mailbox  # ホームにあるメールスプールファイルの名前

以前にやったように, popper/Makefile を 2 箇所書き換え, ビルド, インストールを行う.

# make
# make install

APOP データベースの初期化を行う.

# popauth -init

一般ユーザ (ここでは chikuwa1) になって, APOP でメールを受信するよう登録する.

$ popauth
Changing only APOP password for mondo1.
New password: (パスワードを入力)
Retype new password: (パスワードを入力)

改めてメーラーでメールの受信を試みると, メールを受信することができた.

問題は解決した.

EPA サーバ構築ドキュメントにおける qpopper の configure のオプションに --enable-home-dir-mail=Mailbox を追加しておいた.

ezmlm

メーリングリスト管理ソフト ezmlm を導入する.

インストール

入手方法などについては 詳しくは ezmlm 本家サイト を参考のこと.

# cd /usr/local/src
# wget http://cr.yp.to/software/ezmlm-0.53.tar.gz
# tar zxfv ezmlm-0.53.tar.gz
# cd ezmlm-0.53

2.3.1 以降の glibc 上で動くため, というのと log.h を使用するよう, パッチを当てる.

EPA サーバ構築ドキュメントによると 「パッチは ezmlm パッチ から入手する. 」 とあるが, リンク切れであった.

自力で解決を行ってみる.

まず, glibc 2.3.1 以降への対応について, MR-S Cinq [CounterStrike Linux] Linux qmailを参考に以下を行う.

# cp -p error.h error.h.org

error.h の 4 行目を

extern int errno;

から

#include<errno.h>

に書き換える.

次に, log.h を使うために (使わない場合, コンパイルに失敗する), 以下を行う.

  • 以下のファイルの include の最後に「#include "log.h"」を追加
    • ezmlm-manage.c
    • ezmlm-return.c

バイナリファイルのインストール先はこれまでのやり方に合わせ, /usr/local/ezmlm/bin 以下とする.

conf-bin を以下のように書き換える.

# vi conf-bin

/usr/local/ezmlm/bin

man のインストール先も以下のように変更する.

# vi conf-man

/usr/local/ezmlm/man

これらのインストール先ディレクトリである /usr/local/ezmlm は先に作っておく必要があるので手動で作成する.

# mkdir /usr/local/ezmlm

conf-qmail に記述されているディレクトリが [EPA]qmailのインストールと設定#ソースの取得とコンパイル で qmail がインストールされているディレクトリと一致していることを確認.

# cat conf-qmail
/var/qmail
(略)

# ls -F /var/qmail/
alias/  bin/  boot/  control/  doc/  man/  queue/  rc*  users/

確認終了後, ビルドを行う.

# make
# make man
# make setup

エラーなく完了.

パスの設定

実行ファイル

インストールした ezmlm の実行ファイル群へパスを通す.

[EPA]パスの設定 の <一般ユーザ用コマンドのパス> に /usr/local/ezmlm/bin を追加する.

マニュアル

/etc/manpath.config に以下の行を追加する. 詳しくは [EPA]パスの設定#man 関連のパスの設定 を参照のこと.

MANDATORY_MANPATH                        /usr/local/ezmlm/man
MANPATH_MAP        /usr/local/ezmlm/bin  /usr/local/ezmlm/man
MANDB_MAP          /usr/local/ezmlm/man  /usr/local/ezmlm/man

参考文献

[Memo2008][EPA]tako作業メモ(納多)(080731) へ続く.