5月 032007
 

僕は Core2Duo な MacBook を持っているんだけど、以前から MacOSX で納得のいってなかったのは、 MTA が IPv6 に対応していないこと。そー。MacOSX では Postfix が default で入っているのだけど、こいつが IPv6 に対応していないX-(。

なので最近は、FreeBSD の sendmail のバージョンがアップする度に MacOSX に sednamil をインストールしている。今回はそのインストール方法についてまとめて掲載してみよう。まぁ、一種の自分の忘却録みたいなモンだけどね(^^;;。

僕の手元には FreeBSD があるので MacOSX に最新版の sendmail をインストールするときには FreeBSD が必須となっています。以下、MacOSX に sendmail をインストールするときに必要なもの。

1. FreeBSD の /etc/mail 配下一式。FreeBSD STABLE などから tar で固めて持ってきましょう;-)。
2. /usr/ports/mail/sendmail/files/site.config.m4 と site.config.m4.ipv6
IPv6 対応にする sendmail にするためには以下のコマンドを打って site.config.m4 を作成すれば良いでしょう。

% cd /usr/ports/mail/sendmail/files/
% cat site.config.m4 site.config.m4.ipv6 > ~/site.config.m4

 
3. sendmail-8.14.1 のソースコード。

さぁ。準備は整いましたか?では続いて sendmail の build と行ってみましょうか。

1. MacOSX 上で sendmail のソースを展開します。
2. Build スクリプトを実行します。大体以下のような感じ。os と rel は uname -a コマンドを実行し、自分の MacOSX のバージョンに合わせます。

% cd /usr/local/src
% tar xvzfp sendmail.8.14.1.tar.gz
% cd sendmail-8.14.1
% ./Build -c -f ~/site.config.m4 -E os=Darwin -E rel=8.9.1

 
次に build が終わったらインストールしますがその前にディレクトリを掘って上げます。なお、Build install では mail.local をインストールしてくれないのでこれだけは手でインストールします。また、sendmail.cf を作成するために cf ディレクトリを /usr/share/sendmail/ 配下にコピーします。

# mkdir /var/spool/clientmqueue
# mkdir /etc/mail
# mkdir /usr/share/man/cat1
# mkdir /usr/share/man/cat5
# mkdir /usr/share/man/cat8
# ./Build install -E os=Darwin -E rel=8.9.1
# cp -pr ./obj.Darwin.8.9.1./mail.local/mail.local /usr/libexec/
# cp -pr cf /usr/share/sendmail/

 
以上で sendmail のインストールは完了です。

FreeBSD から /etc/mail 配下を持って来ているのでそれをそのまま MacOSX に展開します。/etc/mail 配下では bsdmake とたたくと m4 マクロから sendmail.cf を作成してくれることでしょう。

しかし、これだけでは sendmail が動作しないのが MacOSX です。sendmail が正しく動作するために環境を整える必要があります。

まずは NetInfo マネージャで sendmail が動作するユーザを登録します。これは FreeBSD の /etc/passwd、group ファイルと同じでいいでしょう。 以下の二つを NetInfo マネージャ から users と groups に登録します。

- /etc/passwd
smmsp:*:25:25:Sendmail_Submission_User:/var/spool/clientmqueue:/usr/sbin/nologin

 

- /etc/group
smmsp:*:25:

 
次に各種ディレクトリの整合性を取ります。sendmail 用のディレクトリを作成します。また、sendmail は自分が参照するディレクトリが 775 だと動かないのでそれを直してあげる必要があります。裏を返すと MacOSX は全然安全では無い OS。と言うことですね・・X-(。

# chown root:smmsp /usr/sbin/sendmail
# chown smmsp:smmsp /var/spool/clientmqueue
# chown root:smmsp /var/mail
# chown root:daemon /var/spool/mqueue
#chmod 40770 /var/spool/clientmqueue #chmod 40750 /var/spool/mqueue
# chmod 40755 /Users/ # chmod 40755 /Users/takachan/ # chmod 40755 / # cp /dev/null /var/log/sendmail.st

 
さてと・・。最後の三つの chmod でディレクトリのバーミッションを変更していますが、これやると、一般ユーザから NetInfo マネージャが動作しなくなります(ユーザ情報の登録・変更などができなくなります)。怖いですねぇ・・。しかし、775 になっている OS はそーそー使いたくないものです。この際だから 755 に変更してしまいましょう。

NetInfo マネージャが使えなくなると困るので、ログイン画面から root でログインできるようにします。NetInfo マネージャで root にパスパードを設定してあげれば良いです。そうすれば、NetInfo マネージャを使いたい場合は、いつでも root でログインして利用することができます。

以上で sendmail のインストールは完了です。後はスタートアップスクリプトを書くだけです。まぁ、あれなんですけど、/etc/hostconfig から起動するようにしましょうかね。以下の行を /etc/hostconfig に書きます。

# User Services
MAILSERVER=-YES-

 
でもって起動スクリプトSendmail を用意しました。これを /Library/StartupItems/ に展開すれば、起動時に sendmail が起動するようになるでしょう。

さて、これで以上ですが、あなたも MacOSX で IPv6 な MTU の世界をお楽しみください;-)。