ULTRA 10には結局Solaris 10をいれて、とりあえず自宅メールサーバに仕立てました。
CSWパッケージ導入
ソースからコンパイル、インストールして導入していくのは大変なので、Blastwave.orgで提供されるバイナリパッケージを利用します。
こちらの手順にしたがって環境を構築すると、pkg-getコマンドでバイナリパッケージの導入、アップデートがおこなえるので便利です。
メール環境構築に必要な、以下のパッケージ群(と依存パッケージ)を導入します。
- CSWcourierimap – Courier-IMAP
- CSWmaildrop – maildrop
- CSWfetchmail – fetchmail
SendmailのMaildir対応
IMAPサーバにはCourierを使いますので、Maildir配送となるようにsendmail.cfを変更します。
「Sendmail で Maildir を使う」の情報を参考に、ローカル配送プログラムを/opt/csw/bin/maildropに変更し、/opt/csw/etc/maildrop/maildroprcを用意します。
# cd /etc/mail/cf/cf # cp sendmail.mc sendmail-maildrop.mc; vi sendmail-maildrop.mc # diff -u sendmail.mc sendmail-maildrop.mc --- sendmail.mc Sat Jan 22 08:30:45 2005 +++ sendmail-maildrop.mc Tue Jan 10 12:22:07 2006 @@ -26,6 +26,7 @@ OSTYPE(`solaris8')dnl DOMAIN(`solaris-generic')dnl define(`confFALLBACK_SMARTHOST', `mailhost$?m.$m$.')dnl +FEATURE(`local_procmail', `/opt/csw/bin/maildrop', `maildrop -d $u') MAILER(`local')dnl MAILER(`smtp')dnl # /usr/sfw/bin/gmake sendmail-maildrop.cf # cp -p sendmail-maildrop.cf /etc/mail/sendmail.cf # svcadm refresh smtp:sendmail
ここまでやってから気がついたのですが、/usr/ccs/bin/makeを使えとMakefileに書かれていました 😛
bogofilter導入
SPAMフィルタに利用しているbogofilterと、日本語わかちがきに必要となるkakasi、nkfはCSWでパッケージングされていないため、ソースからコンパイル、インストールします(spamassassinはバイナリパッケージがあります)。
ちなみに.mailfilterは以下のような記述にしています(抜粋)。
PATH=/bin:/usr/bin:/usr/local/bin:/opt/csw/bin MAILDIR="Maildir" DEFAULT="$MAILDIR/" BOGORESULT=`nkf -ZSme|kakasi -w|bogofilter -epu|reformail -X'X-Bogosity:'` xfilter "reformail -i'${BOGORESULT}'" if (/^X-Bogosity: Spam/:h) to "$MAILDIR/.Spam/"
bogofilterのwordlist.dbは旧メールサーバでdump(bogoutil)してから再インポートします。
famのエラー対応
このままだとFAQにもなっているfamのエラーメッセージが出力されます。
解決方法はFAQの通りなのですが、CSWfamパッケージは依存パッケージとして導入されており、/etc/inetd.confにもエントリができています。
ちょっと悩んだのですが、Solaris 10の場合/etc/inetd.confにエントリを追加するだけでは不十分でinetconvを実行してsmf管理下にする必要があったようです。
# inetconv inetconv: Notice: Service manifest for 100235/1 already generated as /var/svc/manifest/network/rpc/100235_1-rpc_ticotsord.xml, skipped inetconv: Notice: Service manifest for 100083/1 already generated as /var/svc/manifest/network/rpc/100083_1-rpc_tcp.xml, skipped inetconv: Notice: Service manifest for 100068/2-5 already generated as /var/svc/manifest/network/rpc/100068_2-5-rpc_udp.xml, skipped sgi_fam/1-2 -> /var/svc/manifest/network/rpc/sgi_fam_1-2-rpc_tcp.xml Importing sgi_fam_1-2-rpc_tcp.xml ...Done
これでfamのエラーも出なくなりました。
Sorry, the comment form is closed at this time.