jlbhs.gif (6180 バイト) jlb.jp/hsinstall8s/sendmail-8_12

sendmail-8.12.x を導入する。
 2002/11/23

 

 2003/05/24:upd (1) (2)

<凡例>
赤字=入力する文字列
青字=表示される文字列(コンソール画面)
紫字=エディタ等で入力する文字列
  使わなくなった古い記述。

  Red Hat Linux 8.0 用の sendmail-8.12.5 を別ページに掲載しました。 (2003/01/26) 


■Turbolinux7 とともに使ってきた(ほとんど実験でしか使っていませんでしたが) sendmail-8.11.x でしたが、Turbolinux 8 Server に変えたこともあり、導入してみました。 現在のバージョンは、 sendmail-8.12.6 です。
ただし、今回はディストリビューションがプロモーション版だったことや、ユーザーガイドが無いことから苦戦しました。
同じように導入を試みられる方に、何らかの参考になれば幸いです。

右画像は、Outlook Express を使う前に、ASAHI−NETのメールを事前確認するために使って重宝しているnPOPで、 sendmail-8.12.6 の実験用アカウントを開いて、携帯メールとの間でテストしているときのものです。

想定するメール環境は、 (8.11.x の時と同じです)
1.メールアドレス: xxx@jlb.jp  とする。(@hs8.jlb.jp   @mail.jlb.jp 等のサーバー名はつけない。)
2.クライアントからの接続は、IMAP4を使用する。(POP3も起動しています)
3.クライアントからメールサーバーへの接続は、LAN内を限定し、外部からの接続(メール確認および発信)には CGI のwebmailer を使用する。
4.大げさな中継等は考えず、自サーバーと相手方のやり取りを基本とする。

 

1.config.mc ファイルの作成

作業ディレクトリーに移動し、標準の .mc ファイルを config.mc ファイルとしてコピーする。

cd /usr/lib/sendmail-cf/cf/
[root@hs8 cf]# cp /etc/mail/sendmail.mc config.mc


vi config.mc

-------------------------------------------------------------
divert(-1)dnl
dnl This is the macro config file used to generate the /etc/mail/sendmail.cf
dnl file. If you modify thei file you will have to regenerate the
dnl /etc/mail/sendmail.cf by running this macro config through the m4
dnl preprocessor:
dnl
dnl
dnl cd /usr/lib/sendmail-cf/cf
dnl make /etc/mail/sendmail.cf
dnl
dnl You will need to have the sendmail-cf package installed for this to
dnl work.

VERSIONID(`linux setup for Turbolinux')dnl
OSTYPE(`linux')dnl
define(`confDEF_USER_ID',`8:12')dnl
undefine(`UUCP_RELAY')dnl
undefine(`BITNET_RELAY')dnl
dnl define(`confAUTO_REBUILD')dnl
define(`confTO_CONNECT', `1m')dnl
define(`confTRY_NULL_MX_LIST',`true')dnl
define(`confDONT_PROBE_INTERFACES',`true')dnl
define(`PROCMAIL_MAILER_PATH',`/usr/bin/procmail')dnl
define(`LOCAL_MAILER_ARGS',`procmail -Y -a $h -d $u ')dnl
define(`STATUS_FILE', `/var/log/sendmail.st')dnl
define(`UUCP_MAILER_MAX', `2000000')dnl
define(`confUSERDB_SPEC', `/etc/mail/userdb.db')dnl
dnl define(`confPRIVACY_FLAGS', `authwarnings,novrfy,noexpn')dnl
dnl define(`confTO_QUEUEWARN', `4h')dnl
dnl define(`confTO_QUEUERETURN', `5d')dnl
dnl define(`confQUEUE_LA', `12')dnl
dnl define(`confREFUSE_LA', `18')dnl

FEATURE(`smrsh',`/usr/sbin/smrsh')dnl
FEATURE(`mailertable',`hash -o /etc/mail/mailertable')dnl
FEATURE(`virtusertable',`hash -o /etc/mail/virtusertable')dnl
FEATURE(`redirect')dnl
FEATURE(`always_add_domain')dnl
FEATURE(`use_cw_file')dnl
FEATURE(`local_procmail')dnl
FEATURE(`access_db'
,`hash -T<TMPF> -o /etc/mail/access')dnl
FEATURE(`blacklist_recipients')dnl

dnl We strongly recommend to comment this one out if you want to protect
dnl yourself from spam. However, the laptop and users on computers that do
dnl not have 24x7 DNS do need this.
dnl FEATURE(`accept_unresolvable_domains')dnl
dnl FEATURE(`relay_based_on_MX')dnl

dnl
dnl MASQUERADE
dnl

dnl MASQUERADE_AS(`jlb.jp')dnl
dnl (上の行の先頭 dnl を取る)SMTPサーバーのFQDNが hs8.jlb.jp の時、このHOSTから配信される From: を @jlb.jp とする。
dnl MASQUERADE_DOMAIN(`otherhost1.turbolinux.gr.jp')dnl
dnl MASQUERADE_DOMAIN(`otherhost1.turbolinux.gr.jp')dnl
dnl MASQUERADE_DOMAIN_FILE(`/etc/mail/masq-domains')dnl
dnl FEATURE(`masquerade_entire_domain')dnl
dnl FEATURE(`masquerade_envelope')dnl
dnl EXPOSED_USER(`root postmaster')dnl
dnl (55行目記述により、上の行の先頭 dnl を取る。この2ユーザーはホスト名をつける。) (2003/02/15 : 削除)
dnl
dnl SMTP Auth
dnl

dnl define(`confAUTH_MECHANISMS', `DIGEST-MD5 CRAM-MD5')
dnl define(`confDEF_AUTH_INFO', `/etc/mail/auth-info')
dnl TRUST_AUTH_MECH(`DIGEST-MD5 CRAM-MD5')

dnl or If you want to use SMTP Auth with Microsoft OutlookExpress,
dnl please add LOGIN authentication in defination.
dnl (but LOGIN auth isn't recommended)
dnl
dnl define(`confAUTH_MECHANISMS', `LOGIN DIGEST-MD5 CRAM-MD5')
dnl TRUST_AUTH_MECH(`LOGIN DIGEST-MD5 CRAM')

dnl
dnl STARTTLS (TLS(SSL)) Support
dnl
dnl please make keys named certs.pem and privkey.pem in /etc/mail/certs.
dnl

dnl define(`confCACERT_PATH', `/etc/mail/certs/')
dnl define(`confCACERT', `confCACERT_PATH/cert.pem')
dnl define(`confSERVER_CERT', `confCACERT_PATH/cert.pem')
dnl define(`confSERVER_KEY', `confCACERT_PATH/privkey.pem')


dnl
dnl If you want to use IPv6, please remove the string "dnl" before
dnl the string "DAEMON_OPTIONS(`Name=MTA-v6 Family=inet6')"
dnl
dnl DAEMON_OPTIONS(`Name=MTA-v4 Family=inet')dnl
dnl DAEMON_OPTIONS(`Name=MTA-v6 Family=inet6')dnl

MAILER(`smtp')dnl
MAILER(`local')dnl
MODIFY_MAILER_FLAGS(`LOCAL', `+S')

-------------------------------------------------------------

2.関連ファイルの設定と、 /etc/sendmail.cf の作成

受信するメールのホスト名を指定する。
ホスト名(jlb.jp)を /etc/mail/local-host-names に記述します。

vi /etc/mail/local-host-names

jlb.jp                      <-- 書き加える。(初期は未記入)



自組織からのメールは中継を許可する。
vi /etc/mail/relay-domains        (初期は未記入)

jlb.jp                      <-- 書き加える。(同一ドメイン名 および)
192.168.1.            <-- 書き加える。(LAN内部からの中継のみ可:この記述は必須)



config.cf ファイルを作成する。(ディレクトリーはそのまま)

[root@hs8 cf]# ./Build config.cf
rm -f config.cf
/usr/bin/m4 ../m4/cf.m4 config.mc > config.cf || ( rm -f config.cf && exit 1 )
*** WARNING: missing -T<TMPF> in argument of FEATURE(`access_db', hash -o /etc/mail/access)
chmod 444 config.cf
[root@hs8 cf]#


ここでエラー(WARNING)が出るので、
config.mc hash 部分を追記します。(前 1.項で修正済み)

それだけでは、不足で、もう一箇所、
[root@hs8 cf]# vi /usr/lib/sendmail-cf/ostype/linux.m4

FEATURE(`access_db', `hash -T<TMPF> -o /etc/mail/access')      <===24行目あたり

-T<TMPF> を追加します。

先ほどの作業でできた config.cf を消し
[root@hs8 cf]# rm -f config.cf

再度

[root@hs8 cf]# ./Build config.cf
rm -f config.cf
/usr/bin/m4 ../m4/cf.m4 config.mc > config.cf || ( rm -f config.cf && exit 1 )
chmod 444 config.cf
[root@hs8 cf]#


次に、作成された config.cf を /etc/sendmail.cf としてコピーする。

cp config.cf /etc/mail/sendmail.cf                               <==== 訂正 mail/ を挿入  (2003/05/24-1)
cp: `/etc/mail/sendmail.cf' を上書きしてもよろしいですか(yes/no)? y      <---上書きの確認
[root@hs8 cf]#

 

3.メールのリレー(転送)設定

access ファイルに、転送を許すネットワークを追記する。( jlb.jp はおまじない)

vi /etc/mail/access

--------------------------------------------------------------
# Check the /usr/doc/sendmail-8.11.6/README.cf file for a description
# of the format of this file. (search for access_db in that file)
# The /usr/doc/sendmail-8.11.6/README.cf is part of the sendmail-doc
# package.
#
# by default we allow relaying from localhost...
localhost RELAY
127.0.0.1 RELAY
jlb.jp       RELAY
192.168.1 RELAY

--------------------------------------------------------------

makemap hash /etc/mail/access.db < /etc/mail/access


この(上記)、転送設定をしないと、外部にはメールを発信できませんでした。(特に 192.168.1 が有効)

4.imapの有効化

turboservice  

で IMAP を有効にする。

または、
chkconfig imap on

ちなみに pop3 は、
chkconfig pop-3 on


サービスの開始
/etc/init.d/xinetd start


5.アクセス許可の設定

大変重要でこれを設定しないと、クライアントから参照ができません。


vi /etc/hosts.allow


sshd : ALL  <--- TLS の初期設定(この行と ALL : 127.0.0.1 のみ有効)。

sendmail-8.11.x では、以下の設定を追記してOKでしたが、
imapd : 192.168.1.0/255.255.255.0     

ALL : ALL    を書き込まないと、外部とのやり取りがうまくいきませんでした。

どこかに説明してある資料があるかもしれませんが、とりあえずこれでOKとしました。

ちなみに pop3 は、
pop3d : 192.168.1.0/255.255.255.0        とでも記入する。(これもだめ)

 

 

 

その後、再定義しました。 (2003/05/24-2)
vi /etc/hosts.allow

sshd : ALL
ipop3d : ALL
imapd : ALL
sendmail : ALL
#
ALL : ALL
sshd はそのまま。
pop3 と imap は TL8Sでの記述。
sendmail は、記述しないと外部からのメールを受け取れません。
そして、 ALL はコメントアウトとしました。




vi /etc/hosts.deny    <-- 確認のみ。

ALL: ALL  <---- 初期値。

それと、 root と je3 (仮の user )の間でメールのやり取りを実験しているときに、 user から送信時にエラーが発生しました。 以前のバージョンでは発生しなかったのではっきりしませんが、ファイルのパーミッションを変更しています。
[je3@hs8 je3]$ mail xxxxxxxxxxx@docomo.ne.jp
Subject: test je3 to xxxxxxxxx
test test


.
Cc: 
[je3@hs8 je3]$ /etc/mail/submit.cf: line 0: cannot open: Permission denied <==エラー

[root@hs8 cf]# ll /etc/mail/submit.cf
-rw-r-----     1     root     smmsp     679     10月 31 15:58     submit.mc

[root@hs8 cf]# chmod 644 /etc/mail/submit.cf


再起動

/etc/init.d/xinetd restart     する。
[root@hs8 cf]# /etc/rc.d/init.d/sendmail restart    こちらも再起動しておく。

6.メール送受信の統計


# touch /var/log/sendmail.st        <-- DBの初期化(初回のみ実行)

mailstats     <-- で取得。


Statistics from Sat Nov 23 10:01:29 2002
 M   msgsfr  bytes_from   msgsto    bytes_to  msgsrej msgsdis  Mailer
 4        1          1K        8          8K        0       0  esmtp
 8       23        115K       16        109K        0       0  local
=============================================================
 T       24        116K       24        117K        0       0
 C       21                    7                    0 


local の bytes_form と bytes_to は、root 宛に吐きだされるメールのようです。
smtp の bytes_from は、外部からの受信( hs が受信)。bytes_to は、送信のようです。

 

7. docomo 携帯電話での設定。

これも忘れがちなので、 sendmail-8.11 で掲載した内容を追加しておきます。
docomo の迷惑メール対策に対応するための処置として、次の設定を携帯側に行います。

独自ドメインから、携帯(docomo)に送れない/届きにくい件の解消方法

迷惑メール対策としてドコモが取った対策を知らずに悩んでいましたが、ここの掲載を参考に、以下の操作で設定を変更し対応しました。

Docomo(携帯電話)側での対応

[i]ボタンを押す。

[1]iMenu を選択。

[7]オプション設定 を選択。

[1]メール設定 を選択。

[7]メール指定拒否/指定受信/ドメイン指定受信 を選択。
最近は、メニュー番号[8]番に変わっているようです

ドメイン指定受信
 Iモード・他携帯電話・PHS(*)からのメールと、指定するドメインからのメールを受信する
 を選択。

指定アドレス・ドメイン の入力欄に以下の2行を記入。(EMAIL.NE.JP はASAHI-NETのメールドメイン)

EMAIL.NE.JP
JLB.JP

(注)最終設定時に、iモードパスワードが要求されます。

(ドメイン名は半角英大文字しか入力できませんが問題ありません)

以上で、独自ドメイン(jlb.jp)からのメールも、即時に届くようになりました。
ただし、仕事関係とか携帯に届く可能性のあるドメイン名は登録しておく必要があります。(実験済み)
知らないのは私だけだったような話でした。

以上 2002/7/01:追記

■上記、登録ドメイン名の 半角英大文字 は、N501iでのことで、最近N504iに機種変したところ、小文字が入力されるようです。 2002/11/08:追記