Sendmail & qpopper Configuration


1.メールの仕組み

 メールサーバーは複数のプログラムが処理をそれぞれ担当します。メールの配送は[SMTPサーバー]、メールの読み出しは[POPサーバー]が受け持ちです。
 ここではSMTPサーバー機能を提供するプログラムとして[Sendmail]を扱います。またPOPサーバープログラムは[qpopper]を扱います。

 Sendmailはメールの送受信に使います。qpopperはSendmailが受信して保存しているメールをユーザーが読み出す(取り出す)ために使います。この二つのサーバーを設定し稼働させることでメールを自由に扱うことが出来るようになります。

2.Sendmail

 実際にSendmailをインストールして設定、起動するまでを解説します。

2-1.インストール
 パッケージをダウンロードするか、CD-ROMを入手することから始まりますが、ここではCD-ROMからインストールする手順を説明します。
 作業前にユーザーでログインし、suコマンドでrootになります。

 CD-ROMドライブへ該当するCDをセットし、ドライブをマウントします。
[root@server /root]# mount /mnt/cdrom

 解凍用のディレクトリを指定し、移動します。
[root@server /root]# cd /usr/local/src

 ソースファイルを解凍します。ソースファイルが置かれている場所によって、以下は異なります。
[root@server src]# tar xvzf /mnt/cdrom/mount /mnt/cdrom/cocoa/src/sendmail.8.9.3.tar.gz
sendmail-8.9.3/・・・
sendmail-8.9.3/・・・
sendmail-8.9.3/・・・
sendmail-8.9.3/・・・
sendmail-8.9.3/・・・
sendmail-8.9.3/・・・
 解凍されたファイルが展開されていきます。
[root@server src]# _

 ディレクトリを移動し、Sendmailをコンパイルします(ソースを実際に稼働できるプログラムに組み替える作業)。
[root@server src]# cd sendmail-8.9.3/src
[root@server src]# sh Build

 実行プログラムができあがったら、実際に使えるように、サーバーへインストールします。
[root@server src]# sh Build install


2-2.設定ファイルを作る
 Sendmailはインストールしただけで稼働できるものではありません。起動は可能ですが、利用するためには環境に合った設定ファイルを作成しなければなりません。
 設定ファイルはサンプルが添付されていますので、これを利用します。

 解凍用のディレクトリへ移動し、必要なファイルをCD-ROMから解凍します。
[root@server src]# cd /usr/local/src
[root@server src]# tar xvzf /mnt/cdrom/cocoa/src/CF-3.7Wpl2.tar.gz

 設定ファイルをコピーし、該当ディレクトリへ移動。設定ファイルを書き換えます。
[root@server src]# cp /mnt/cdrom/cocoa/conf/sendmail.def /usr/local/src/CF-3.7Wpl2
[root@server src]# cp CF-3.7Wpl2
[root@server CF-3.7Wpl2]# vi sendmail.def
--------------------------------------
##
## sendmail.def -- Cocoa Linux, July 1999
##

##
CF_TYPE=R8V8

##
DEF_ID='Cocoa Linux, July 1999'

##
VERSION=3.7Wpl2
VERSION_SEPARATOR=/
--------------------------------------
##
MAIL_RELAY_RESTRICTION=yes
LOCAL_HOST_IPADDR='210.162.247'    
 ←ネットワークアドレスの先頭3つを指定。
LOCAL_HOST_DOMAIN='we-shall.com'    ←自分のドメイン名を設定。

 上書き保存[:w]し、終了[:q]します。

 設定ファイルを作成します。
[root@server CF-3.7Wpl2]# make sendmail.cf

 メール送信のテストを行います。
[root@server CF-3.7Wpl2]# /usr/sbin/sendmail -bt -C./sendmail.cf  ←テストモードで起動。-btオプションはテストモードであることを宣言します。-Cオプションは設定ファイルを指定します。異なるテスト環境でも、他の設定ファイルを利用できます。
--------------------------------------
ADDRESS TEST MODE (ruleset 3 NOT automatically invoked)
Enter <ruleset> <address>
>_

 まずは自分のドメインへの配送。
> 3,0 root@we-shall.com
rewrite: ruleset   3   input: root*************
rewrite: ruleset  96   input: root*************
rewrite: ruleset  96 returns: root*************
rewrite: ruleset   3 returns: root*************  
←指定したメールアドレスにreturnされていればOK
rewrite: ruleset   0   input: root*************
rewrite: ruleset  97   input: root*************
rewrite: ruleset   3   input: root*************
rewrite: ruleset   3 returns: root*************
rewrite: ruleset   0   input: root*************
rewrite: ruleset   0 returns:  $# local  $: root  
←localはこのサーバーがメールを受け取る
rewrite: ruleset  97 returns:  $# local  $: root  
←rootは送信先のユーザー
rewrite: ruleset   0 returns:  $# local  $: root
>_

 次に外部のドメインへ配送してみます。
> 3,0 a_nakayama@dskn.co.jp
rewrite: ruleset   3   input: a_nakayama*************
rewrite: ruleset  96   input: a_nakayama*************
rewrite: ruleset  96 returns: a_nakayama*************
rewrite: ruleset   3 returns: a_nakayama*************  
←指定したメールアドレスにreturnされていればOK
rewrite: ruleset   0   input: a_nakayama*************
rewrite: ruleset  88   input: < SMTP : dskn.co.jp >
rewrite: ruleset  88 returns:  $# smtp $@dskn.co.jp. $: a_nakayama******  
←他のSMTPサーバーへ送信されている。
rewrite: ruleset   0 returns:  $# smtp $@dskn.co.jp. $: a_nakayama******
>_

 テストモード終了。
> [Ctrl] + [D]
> [root@server CF-3.7Wpl2]#_

 元の設定ファイルを保存。
[root@server CF-3.7Wpl2]# mv /etc/sendmail.cf /etc/sendmail.cf.orig

 設定ファイルをコピーし、Sendmailを再起動する。
[root@server CF-3.7Wpl2]# cp sendmail.cf /etc
[root@server CF-3.7Wpl2]# /etc/rc.d/init.d/sendmail restart
Shutting down sendmail:           [  OK  ]
Starting sendmail:               [  OK  ]
[root@server CF-3.7Wpl2]# _

 以上でメール配送部分の構築は終わります。


3.qpopper

 SMTPサーバー上の保存されているメールを読むには、POPサーバーを利用します。ここではPOPサーバー機能を使えるようにするために、qpopperというPOPサーバープログラムを扱います。

3-1.インストール
 解凍用ディレクトリに移動し、CD-ROMから解凍します。
[root@server /root]# cd /usr/local/src
[root@server src]# tar xvzf /mnt/cdrom/cocoa/src/qpopper3.0b18.tar.Z

 コンパイルし、インストールします。
[root@server src]# cd qpopper3.0
[root@server qpopper3.0]# ./configure --enable-apop --with-popuid=mail --enable-specialauth
creating *****

creating *****
[root@server qpopper3.0]#_
[root@server qpopper3.0]# make  
←コンパイルします。
cd ./popper && make all
--------------------------------------
make[1]: Leaving directory '/usr/local/src/qpopper3.0/popper
[root@server qpopper3.0]# cd popper  
  ←インストールのためディレクトリを移動。
[root@server popper]# install -s -m 4755 -o ,ail -g mail popauth /usr/bin
[root@server popper]# install -s popper /usr/sbin
[root@server popper]# popauth -init

3-2.設定ファイルを編集し、設定を反映させます。
[root@server popper]# vi /etc/inetd.conf
#
# inetd.conf This file describes the services that will be available
# through the INETD TCP/IP super server. To re-configure
# the running INETD process, edit this file, then send the
# INETD process a SIGHUP signal.
#
# Version: @(#)/etc/inetd.conf 3.10 05/27/93

--------------------------------------
#
# Pop and imap mail services et al
#
#pop-2 stream tcp nowait root /usr/sbin/tcpd ipop2d
pop-3 stream tcp nowait root /usr/sbin/tcpd popper -s
  ←コメントアウトされている(行頭に#がある)ので、有効にする。また、文末は[/usr/sbin/tcpd ipop3d]となっているため、[ipop3d]を[popper -s]に変更。
#imap stream tcp nowait root /usr/sbin/tcpd imapd
#
# The Internet UUCP service.
#
#uucp stream tcp nowait uucp /usr/sbin/tcpd /usr/lib/uucp/uucico
 上書き保存[:w]し、終了[:q]します。
[root@server popper]# /etc/rc.d/init.d/inet reload  ←設定を反映。

 以上でメールサーバーが完成します。途中でエラーが出力されるようであれば、エラーを確認し、そのステップの最初からもう一度行います。


4.共有メールアカウント

 /etc/aliasesはSendmailの設定ファイルで、メールアカウントとメールアドレスを対応づけます。これを利用すると特定のアカウントへ送信されたメールを別のユーザーへ届くようにしたり、簡単なメーリングリストの作成も出来ます。
 /etc/aliasesを変更した場合は、変更を反映させるために[newaliases]を実行すると覚えておきましょう。
[root@server /root]# newaliases

4-1.root宛のメールを他のユーザーへ転送させる。
[root@server /root]# vi /etc/aliases
#
# @(#)aliases 8.2 (Berkeley) 3/5/94
#
# Aliases in this file will NOT be expanded in the header from
# Mail, but WILL be visible over networks or from /bin/mail.
#
# >>>>>>>>>> The program "newaliases" must be run after
# >> NOTE >> this file is updated for any changes to
# >>>>>>>>>> show through to sendmail.
#
# Basic system aliases -- these MUST be present.
MAILER-DAEMON: postmaster
postmaster: root
--------------------------------------
# Person who should get root's mail
#root: marc
root: a_nakayama   
← rootが転送元、a_nakayamaへ転送される。[root]の後の[:]を忘れると機能しない。
[root@server /root]# newaliases  
←設定を反映。

4-2.簡単なメーリングリスト
[root@server /root]# vi /etc/aliases
--------------------------------------
# Person who should get root's mail
dg-group:  a_nakayama, t_kasagi, s_sasaki, t_ikeda, higashi@snet.co.jp
, minami@dsu.com
 このdg-group@we-shall.comで送信されたメールは、それぞれ上記のメンバーへ配信されます。このサーバーのアドレスは@マーク以下を省略できます。
 メンバーが多くなってきた場合、都度aliasesをメンテナンスする作業は繁雑です。そこで、メンバーリストを作成し、そのファイルを読み込ませるように設定すると便利です。
[root@server /root]# mkdir /etc/ml  ←MLメンバーリストを配置するディレクトリを作成。
[root@server /root]# vi /etc/ml/dg-group  
←メンバーリストファイルを作成。以後はここへ追加。
a_nakayama
t_kasagi
s_sasaki
t_ikeda
higashi@snet.co.jp
minami@dsu.com
:w   
←書き込み
:q   
←編集終了
[root@server /root]# vi /etc/aliases
--------------------------------------
# Person who should get root's mail
dg-group:  :include:/etc/ml/dg-group  
←aliasesにインクルードさせる。include前後の[:]を忘れない事。
[root@server /root]# newaliases  
←設定を反映。
 以後はリストファイルを更新するだけで良い。newaliasesコマンドは必要ない。


トップへ戻る

26/January/2000