qmailのインストール

(2003.11.3新規作成, 2005.9.18更新)

Warning.

(2011.8)

qmailは、もはや誰にもメンテナンスされていません。バグも放置されており、セキュリティ上からも、使うべきではありません。

qmail の代わりとしては, Postfix (MTA) + Dovecot (IMAPサーバ) の組み合わせがおすすめ。

(2014.7) Fedora 20 Linuxの標準は, ssmtp <https://packages.qa.debian.org/s/ssmtp.html> です。ただ、ssmtp では機能が小さすぎるように思います。

# 目的

WebアプリケーションやCGIプログラムをつくるとき、メールを送信したい場合がよくある。

解説書でよく見かけるのはSMTPサーバに接続してメールを送信するものだが、ネットワークを経由するとネットワークの状態やメールサーバの状態によっては美味くいかないことがある。

Webサーバにメール送信プログラムをインストールして、Webアプリケーションからはパイプでデータを送るほうがいい。リトライの必要があれば、そのメール送信プログラムがやってくれる。

以下、そういう用途のために、qmailをインストールする。

# ファイルの入手

qmailのオリジナル版は、以下で配布されている。最新版はバージョン1.03。

しかし、D.J.Bernsteinによるメンテナンスはされておらず、今はそのままではコンパイルできない。小さなパッチを組み合わせて今のシステムで使えるようにしたnetqmail、あるいはLinuxディストリビューションが提供するパッケージを使ったほうがいい。

(1) 2007年1月現在のnetqmailはバージョン1.05で、下記から入手できる。

ダウンロードしたら、アーカイブを展開して、collate.sh を実行する。これでパッチが当たった状態になる。

(2) あるいは、debianが提供するパッケージを使ってもいい。

# インストール

インストール先は、conf-qmailファイルにある。/var/qmailのままで問題ない。

コンパイラはconf-cc、リンカはconf-ldファイルで設定する。gccを使うように修正する。

さらに、makeの前にユーザーを追加しておく必要がある。作成すべきグループ名はconf-groupsファイル、ユーザー名はconf-usersファイルにある。

debianパッケージでは、グループ名はnogroupになっている。

# mkdir /var/qmail

# /usr/sbin/groupadd qmail
# /usr/sbin/groupadd nofiles

# /usr/sbin/useradd alias -g nofiles -d /var/qmail/alias -s /sbin/nologin 
# /usr/sbin/useradd qmaild -g nofiles -d /var/qmail -s /sbin/nologin 
# /usr/sbin/useradd qmaill -g nofiles -d /var/qmail -s /sbin/nologin 
# /usr/sbin/useradd qmailp -g nofiles -d /var/qmail -s /sbin/nologin 

# /usr/sbin/useradd qmailq -g qmail -d /var/qmail -s /sbin/nologin 
# /usr/sbin/useradd qmailr -g qmail -d /var/qmail -s /sbin/nologin 
# /usr/sbin/useradd qmails -g qmail -d /var/qmail -s /sbin/nologin 

コンパイル、インストールする。

$ make
$ su
# make setup check

# 設定

設定を行う。config-fastコマンドで行う。メールサーバーのFQDNを引数として指定する。

# ./config-fast foo.bar.examples

起動スクリプトを作成する。/var/qmail/bootディレクトリにサンプルスクリプトが幾つかある。

  • home, home+df qmail-local
  • proc, proc+df procmail
  • binm1, binm1+df BSD4.4 binmail
  • binm2, binm2+df SVR4 binmail
  • binm3, binm3+df V7 binmail
# cp /var/qmail/boot/home /var/qmail/run

# 起動

起動する。daemontoolsを使う。daemontoolsのインストール方法、使い方は、daemontoolsを使うを参照。

# ln -s /var/qmail /service/qmail

しばらく待って、動いているか確認する。

# svstat /service/qmail
/service/qmail: up (pid 3493) 11 seconds

# サイト内関連文書

書籍サポート
実際のメール送信方法は、拙著『Ruby de CGI』を参照してください。

# 外部リンク

Life with qmail (英語) / qmail のある暮らし (日本語訳)
大変詳しい解説。