トップ > 技術メモ (システム管理) > Linuxサーバ管理 >

qmailでCGIプログラムからメールを送信する

(2003.11.3新規作成, 2005.9.18更新)

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ディレクトリにサンプルスクリプトが幾つかある。

# 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
大変詳しい解説。

トップ > 技術メモ (システム管理) > Linuxサーバ管理 > qmailでCGIプログラムからメールを送信する
このページについてのご感想・ご提案などをお寄せください。なお、コメントに「http:」、HTML aタグが含まれると送信されません。
評価: ◎ ← → ×
コメント:
お名前:
メールアドレス:
[Profile]  [Privacy Policy]  [Legal & Link]  [Site Map]  

banner Netsphere Laboratories http://www.nslabs.jp/

Copyright (c) HORIKAWA Hisashi. All rights reserved.

[PR]

はてなブックマークに追加  

サイト内検索:

[PR]