このページは福井県立大学の田中求之が2006年1月まで運用していた Mac のサーバ運用に関する会議室 「Web Scripter's Meeting」の記録です。情報が古くなっている可能性がありますのでご注意ください。

「Sendmail を設定する」Server Admin ヘルプ

発言者:maigoofy
( Date Thursday, August 01, 2002 23:47:14 )


 日頃、皆様の書き込みを読まさせて頂いています。maigoofyです。最近、
MacOS X Server 10.1.4のDockのLateBreaking Newsに「Sendmail を設定す
る」という説明がありましたので、書き込みします。以前はなかったと思い
ます。
 私はこれまで、AppleMail Serviceを使っていたのですが、CGIを使った
掲示板などで、書き込みの通知にsendmailを使うものが多いのでなんとか
Sendmailを代わりに使いたいと思っていました。まだ、以下の方法は実行
していませんが、やってみるつもりです。この件について何かご意見がい
ただけるとうれしいです。

----------------------------------
Sendmail を設定する

メールサービスで「Sendmail」を使うように設定すると、「Sendmail」は、
サーバ上でのプライマリSMTP メール転送エージェントになります。「Server
 Admin」は、「Sendmail」の設定ファイルに、それぞれのローカルホストの
ルールを追加します。そのため、「Sendmail」はポート627 の「Mac OS X」
のメールサーバへメールを送信することができます。

「Sendmail」を使用するには、最初に次の場所にある設定ファイルを設定す
る必要があります:

/etc/mail/sendmail.cf

「Sendmail」設定ファイルを編集するときは、次のように操作します。

1 「Sendmail」設定ファイルを開き、81 行目の行頭に# を入力します。次の
ようになります。
1 Fw /etc/mail/local-host-names
2 1037 行目の行頭に# を入力し、SMTP 転送を有効にします。次のようにな
ります。
2 R$ $#error $@ 5.7.1 $: "550 Relaying denied"
3 ファイル内で「Rewriting Rules」という見出しのある部分を探し、「S0」
(アルファベットの「S」と数字のゼロ)と入力して「Rule 0」を定義しま
す。その下に、ローカルホストごとに1 行ずつ追加します。「host」は、
「Sendmail」で「Mac OS X」のメールサーバにメールを転送したいローカル
ホストのホスト名です。このホスト名は実際のDNS ホスト名ではありませ
ん。このセクションは、次のようになります。(*>$* の次の文字はタブで
す。その他の空白はすべて、タブではなくスペースにする必要がありま
す。)

REWRITING RULES
S0
R$*<$*@host.$>$* $#MailService $@host.$3 $:$1<$2@host.$3>$4
R$*<$*@host.$>$* $#MailService $@host.$3 $:$1<$2@host.$3>$4

4 ファイルの最後で、「Mprog」で始まるエントリを探し、その下に次のよう
に入力します。
MMailService, P=[TCP], A=TCP localhost 627 $h
これにより、「Sendmail」は、ポート627 を監視する配送エージェントに
メールを転送するように設定されます。
5 設定ファイルに加えた変更を保存し、ファイルを閉じます。
6 ローカルホストごとにエイリアス名でレコードA を設定します。これに
は、DNS ルックアップのサーバですでに使われているTCP/IP アドレスと同じ
アドレスを指定します。
7 「Terminal」アプリケーションで次のコマンドを入力して「Sendmail」を
起動します。                     
/usr/lib/sendmail -bd                     

snappish さんからのコメント
( Wednesday, August 07, 2002 19:03:47 )

熱対策・落雷対策してますか〜

>/usr/lib/sendmail -bd

スタートアップファイルを見ると
 /usr/sbin/sendmail -bd -q1h 
になっていますけど良いのかな?

maigoofy さんからのコメント
( Thursday, August 08, 2002 01:25:31 )

すみません。どういうことですか?

snappish さんからのコメント
( Thursday, August 08, 2002 09:52:22 )

X Serverのsendmailのパスは
/usr/sbin/sendmail
が正解ではないか?と思っただけです。

あと付属のドキュメントのREADMEにあるDIRECTORY PERMISSIONS の所で
writable directoryのWARNING対策コマンドに

chmod go-w / /etc /etc/mail /usr /var /var/spool /var/spool/mqueue
chown root / /etc /etc/mail /usr /var /var/spool /var/spool/mqueue

/private
を加えた方が良いかなと思いました。

>熱対策・落雷対策してますか〜
は深い意味はありません、



maigoofy さんからのコメント
( Thursday, August 08, 2002 13:34:55 )

 snappishさん、ありがとうございます。上の設定を試してみたのですが、今のところまだうまくいっていません。

たまちゃん さんからのコメント
( Thursday, August 08, 2002 21:42:17 )

Aristedes Maniatis さんの

http://www.ish.com.au/show/article_sendmailOSX.html

はご覧になったでしょうか。

何か間違い等があれば指摘してほしいとのことです(by Ari さん)。

→  sendmail OSX

maigoofy さんからのコメント
( Friday, August 09, 2002 00:15:16 )

はい。上記の記事はMac OS X Server 10.1.3及び古いバージョンのSendmail
が対象で、記事にも10.1.5では試してないと書いてありました。

近々、もう一度OSをすべてインストールし直して上のServer Admin ヘル
プ「Sendmail を設定する」を試してみようかと考えています。

aki さんからのコメント
( Saturday, August 10, 2002 08:38:50 )

Mac OS X Server 10.1.5のSendmaildでmygoofiさんの設定を試してみましたところ、sendmailを起動しようとすると

Msmtp: Warning: first argument in [IPC] mailer must be TCP or FILE
Mesmtp: Warning: first argument in [IPC] mailer must be TCP or FILE
Msmtp8: Warning: first argument in [IPC] mailer must be TCP or FILE
Mdsmtp: Warning: first argument in [IPC] mailer must be TCP or FILE
Mrelay: Warning: first argument in [IPC] mailer must be TCP or FILE
554 5.0.0 /etc/mail/sendmail.cf: line 1215: MMailService: P=[TCP] must be replaced by P=[IPC]
554 5.0.0 /etc/mail/sendmail.cf: line 1216: Masx: P=[TCP] must be replaced by P=[IPC]
554 5.0.0 /etc/mail/sendmail.cf: line 1219: Masx: P=[TCP] must be replaced by P=[IPC]

との警告が出てうまくいきませんでした。



REWRITING RULES
S0
R$*<$*@host.$>$* $#MailService $@host.$3 $:$1<$2@host.$3>$4
R$*<$*@host.$>$* $#MailService $@host.$3 $:$1<$2@host.$3>$4

のhostには具体的にはどういったものを入れれば良いか御存じの方があれば教えて下さい。

maigoofy さんからのコメント
( Sunday, August 11, 2002 00:21:22 )

REWRITING RULESのhostのところは、私もはっきりとわかりません。MXレコードを登録しているドメイン名だと思うのですが。@より右のxxxx.co.jp?

すみません。私も恥ずかしいのですがよくわかりません。

maigoofy さんからのコメント
( Wednesday, August 21, 2002 21:52:31 )

上記のServer Admin ヘルプ「Sendmail を設定する」を試してみましたが、
結局うまくいきませんでした。そうこうするうちに、Server Admin ヘルプ
「Sendmail を設定する」がアクセスできなくなりました。ひょっとすると
メールをアップルに送ったので、やはり、何か間違いがあったのかもしれ
ないと勝手に思っています。

その後、またいろいろと調べて、sendmailが必要なときだけ動くという環境
を作ることに成功しました。

参考までに下に書きます。At your own riskでお試し下さい。

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

インストール順が重要です。(http://docs.info.apple.com/article.html?artnum=42741) 私の場合はX Server 10.1インストール後に、
一度管理マニュアルを参照して、サーバーを設定します。更に、

1. Security Update 7-18-02
2. Mac OS X Update Combo 10.1.5
3. Mac OS X Server 10.1.3 Update
4. Mac OS X Server 10.1.4 Update
5. Security Update 2002-08-02

を順にインストールします。

それから、http://www.macdevcenter.com/pub/a/mac/2002/06/07/sendmail_1015.htmlを参照しながら

1. cd /usr/share/sendmail/conf/cf

2. sudo cp generic-darwin.mc yourdomain.mc

(It's OK to use the literal "yourdomain" if you don't have a domain for your machine. If you do have a domain, then use it instead. そのまま"yourdomain"を使用しました。) 

3. m4 ../m4/cf.m4 yourdomain.mc > /tmp/sendmail.cf

4. sudo cp /etc/mail/sendmail.cf /etc/mail/sendmail.cf.orig

5. sudo cp /tmp/sendmail.cf /etc/mail/

6. sudo niutil -create . /locations/sendmail

7. sudo niutil -createprop . /locations/sendmail sendmail.cf /etc/mail/sendmail.cf

8. sudo chgrp smmsp /var/spool/clientmqueue

9. sudo chmod g-w /

私は、sendmailでメールを受信しないので、ここまでしかやっていません。
この後もメールを受信する為にsendmailを最初からdaemonで動かす説明
が載っていますが、私は試していません。

また、何か不具合があったら、書き込みします。