連載
» 2002年03月09日 00時00分 公開

GUI管理ツールの導入とユーザー情報のSQL化実用qmailサーバ運用・管理術(7)(2/3 ページ)

[鶴長鎮一,@IT]

qmailadminのインストールとカスタマイズ

 qmailadminのインストールを始める前に、次のものが使用可能になっている必要があります。「autoresponder」はまだ紹介していませんが、それ以外はリンクした各記事を参考にインストールしておきます。

autoresponderとは

 autoresponderは自動応答機能を実現するqmailアドオンツールで、単に応答メッセージを返すだけでなく次のような機能を持っています。

  • envelope sender(第4回 メーリングリストの構築と運用(前編))の書き換え
  • 次の条件では応答しない
     MAILER-DAEMONからのメール
     空のenvelope sender
     MLでよく使われるヘッダ「Precedence:」が「bulk」や「list」の場合
     一定の期間内に同じ差出人から来た場合
  • ロギング機能

 vacationコマンドを使ったことのある方にはなじみ深い機能です。ただ、残念ながら日本語のSubjectやメッセージ文には未対応です()。それでも日本語表示できるメーラもありますが、メール配送のマナーから大きく外れます。今回は、qmailadminを使用するうえでやむなく導入することとし、自動応答にマルチバイト文字を用いないようにします。

注:Subjectを日本語などのマルチバイト文字に対応させるには、Bエンコードを用いる必要があります(第5回 メーリングリストの構築と運用(後編))が、autoresponderは未対応です。同様にメッセージ文に日本語を処理させるための「Content-Type:」ヘッダ(連載:インターネット・プロトコル詳説(3))も欠落しています。

コラム autoresponderの日本語対応化

 どうしても日本語で自動応答したい場合は、以下のようにする手もあります。

 まず、autorespond.cの265行目に次の1行を挿入します。

fprintf(fdm,"Content-Type: text/plain; charset=\"ISO-2022-JP\"\n" );


 そして通常どおりにインストールします。使用時は、次のように応答メッセージの文字コードをJISに変換しておく必要があります。

# cd mv ~vpopmail/domains/バーチャルドメイン名/AUTO/message

# nkf -j message > message.jis

# mv message.jis message


 ただし、この方法でもSubjectの日本語化までは対応していません。また、メッセージの修正をqmailadmin上で行うと文字コードが適切に表示されません。


autoresponderのインストール

 ではautoresponderのインストールです。http://inter7.com/qmailadmin/からautorespond-2.0.2.tar.gz(2002年3月時点の最新版)を適当な作業ディレクトリにダウンロードして展開します。

# tar xvfz autorespond-2.0.2.tar.gz
# cd autorespond-2.0.2/
# make
# make install

 これで/usr/local/bin/autorespondがインストールされました。qmailadminから使用することが目的ですから、直接autorespondを使用する機会は少ないと思いますが概要だけ確認しておきます。

 autoresponderは、第3回 SPAMメール徹底対策で紹介した/var/qmail/bin/bouncesayingと同じように使用します。具体的には、「.qmail」ファイルに次の1行を記述します。

| /usr/local/bin/autorespond time num message dir [ flag arsender ]

 引数やオプションの意味は以下のとおりです。

time:numに使う受付時間(単位:秒)
num:timeで指定された時間以内に受け付けるメールの最大数
message:応答メッセージファイル
dir:ログを作成するディレクトリ

flag(送信されてきたメッセージの扱い方)
0:応答メッセージに添付しない
1:応答メッセージに添付(デフォルト指定)

arsender(応答メッセージ中の差出人)
+:Fromを空にする
$:送られてきたメッセージ中の「To:」を使用

qmailadminのインストール

 準備が整ったところで、qmailadminをインストールします。qmailadminの2002年3月時点の最新版は1.0.2です。http://inter7.com/qmailadmin/からqmailadmin-1.0.2.tar.gzを適当な作業ディレクトリにダウンロードして展開します。その後、ディレクトリを移動してconfigureを行います。vpopmailやautorespondのパスは、紹介したインストール方法であれば自動的に組み込まれます。

# tar xvfz qmailadmin-1.0.2.tar.gz
# cd qmailadmin-1.0.2
# ./configure
    --enable-htmldir=/home/httpd/html/ Apacheのドキュメントルート
    --enable-cgibindir=/home/httpd/cgi-bin/ Apacheのcgi-binディレクトリ

 configureには、qmailadminの挙動を制御するさまざまなオプションが用意されています。主なオプションには次のようなものがあります。

--prefix={PREFIX}
 qmailadminパッケージのインストール先。デフォルトは/usr/local

--enable-vpopmaildir={dir}
 vpopmailをインストールしたディレクトリ(vpopmailユーザーのホームディレクトリ)

--enable-qmaildir={dir}
 qmailのインストール先

--enable-cgipath={/cgi-bin/qmailadmin}
 qmailadmin CGIのURL

--enable-vpopuser={vpopmail}
 vpopmailをインストールした際のユーザー名

--enable-vpopgroup={vchkpw}
 vpopmailをインストールした際のグループ名

--enable-autoresponder-bin={path}
 autorespondのパス。使用しない場合は「n」を指定

--enable-ezmlmdir={dir}
 ezmlmのインストール先

--enable-maxpopusers=unlimited
 1バーチャルドメイン当たりの最大ユーザー数(「-1」は無制限。機能を利用しない場合は「0」を指定)

--enable-maxaliases=unlimited
 1バーチャルドメイン当たりの最大エイリアス数(同上)

--enable-maxforwards=unlimited
 1バーチャルドメイン当たりの最大転送設定数(同上)

--enable-maxautoresponders=unlimited
 1バーチャルドメイン当たりの最大自動応答設定数(同上)

--enable-maxmailinglists=unlimited
 1バーチャルドメイン当たりの最大ML数(同上)

--enable-maxusersperpage=15
 Web 1ページ当たりに表示するユーザー数(デフォルトは15)

--enable-maxaliasesperpage=25
 Web 1ページ当たりに表示するエイリアス数(デフォルトは25)

 機能の制限や拡張をconfigureで指定することも可能ですが、これは各バーチャルドメインで制限する方法を取るため、configure時の指定は最小限にしておきます。

 ではインストールを続けます。

# make
# make install-strip

 インストールが完了したら、Webブラウザで確認してみましょう。

http://サーバのアドレス/cgi-bin/qmailadmin
configure時に「--enable-cgipath」オプションでqmailadminのURLを意図的に変えた場合は、適宜置き換えること

で、inter7社のデモと同じ画面が表示されます。

 「アカウント」にpostmasterを指定した場合は、POPアカウントの追加・変更・削除、エイリアスの設定、転送、自動応答、MLといった、定常業務のほとんどが行えます。一般ユーザーを指定した場合は、パスワードの変更、コメントの登録、転送・Vacationメッセージの設定のみとなります。これで、いちいち管理者に作業を依頼することなく、Webでメールアカウントのパスワード変更が行えます。

画面2 qmailadminの基本画面。ここから各機能にアクセスできる 画面2 qmailadminの基本画面。ここから各機能にアクセスできる

qmailadminのカスタマイズ

 qmailadminでは、以下のものがインストールされます。

/usr/local/share/qmailadmin HTMLのひな型
/home/httpd/cgi-bin/qmailadmin CGI本体
/home/httpd/html/images/qmailadmin 画像ファイル

 qmailadminのWeb画面をカスタマイズするには、/usr/local/share/qmailadmin/にあるHTMLのひな型を編集します()。jaファイルはページタイトルやエラーメッセージの日本語環境用セットです。社名や管理者のアドレスを入れるなどの簡単な変更は、このファイルを編集するだけです。

注:configure時に「--with-htmllibdir={dir}」を使用した場合は、指定したディレクトリに置き換えてください。

 大規模なネットワークや商用利用で、まったく違ったルック&フィールを実現したい場合は、HTMLファイルを直接編集します。その場合、「##」で始まる値を消去したり変更しないように注意します。これらの値は、Webブラウザで表示する際にURLや表示内容として利用される大事なものです。画像を変更したり追加する場合は、/home/httpd/html/images/qmailadminディレクトリを利用します。

Webで設定できないこと

 qmailadminの導入でほとんどの操作はWebで行えるようになりましたが、いくつかの作業はコマンドラインで行う必要があります。以下の作業に関しては、Webツールに頼ることができません。何にせよ、管理者にはメールサーバの運用に伴うさまざまなトラブルや障害に対応する責務がある以上、これくらいの作業はこなせるように努めましょう。

●新規にバーチャルドメインを追加したり削除する場合

 バーチャルドメインの追加や削除は、従来どおりvpopmailのvadddomainとvdeldomainコマンドを使用します。qmailadminで行うことはできません。

 両コマンドについては、第6回 バーチャルドメインにおけるqmailの運用を参照してください。

●バーチャルドメインごとに機能を制限

 「.qmailadmin-limits」ファイルを使うことで、次の機能に制限を設けることができます。

  • アカウント
  • エイリアス
  • 転送設定
  • ML
  • 自動応答

 .qmailadmin-limitsファイルは、各バーチャルドメイン指定のディレクトリ「~vpopmail/domains/バーチャルドメイン名/」下に作成し、ユーザーvpopmailの権限で読み込めるようにパーミッションを変更します。

# chown vpopmail ~vpopmail/domains/バーチャルドメイン名/.qmailadmin-limits

または、

# chmod o+r ~vpopmail/domains/バーチャルドメイン名/.qmailadmin-limits

 作成や変更はqmailadmin起動後でも行えますが、変更前に作成したユーザーに対しては変更内容が反映されないことに注意しましょう。

 先ほどの機能制限に用いた.qmailadmin-limitsは次のようになります。

maxpopaccounts  50
maxaliases      50
maxforwards     50
maxmailinglists 50
maxautoresponders       50
「0」にすると機能を無効化

 これで、それぞれ50件まで利用できます。

●機能の無効化

 同様に、.qmailadmin-limitsを用いることで次の機能を無効にできます。

  • POP接続
  • SMTPの外部リレー(ローカルホストのみの許可)
  • パスワードの変更

 .qmailadmin-limitsは次のようになります。

disable_pop
disable_imap
disable_external_relay
disable_password_changing

●ディスク使用量を制限する(quotaの設定)

 バーチャルドメインごとにディスク使用量を制限するには、.qmailadmin-limitsファイルに次の1行を付け加えます。

default_quota    1024
単位はbyte

 ドメインごとではなく、ユーザーごとにquotaの制限を変えたい場合は、次のvmoduserを使用します。

●すでに作成したアカウントの制限を変更する場合

 .qmailadmin-limitsファイルを変更しても、それ以前から存在するユーザーに対してはquotaなどの機能制限が有効になりません。変更が必要な場合は、次のようにvmoduserコマンドを使用します。

# ~vpopmail/bin/vmoduser -q 上限byte メールアドレス(またはバーチャルドメイン名
quotaを設定し直す場合

 そのほかのオプションについては、vmoduserを引数なしで実行すると表示されるヘルプメッセージを参考にしてください。

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。