Last Update: "2004/10/23 17:54:36 makoto"
smtpfeed
【sendmail】
sendmail はメールサーバです。
もともと OS に
/usr/sbin/sendmail -> /usr/sbin/mailwrapper -> /etc/mailer.conf
/usr/libexec/sendmail/sendmail
/etc/mail/sendmail.cf
などに入っています。この最後の *.cf は
/usr/src/gnu/usr.sbin/sendmail/cf/cf/netbsd-proto.mc
を使って作られています。
これをそのまま使っても多分何も問題がないと思いますが、それでは応用が効かないので、
まず sendmail 自体の方として pkgsrc を使ってsmtpfeed を含んだ形のものを用意して見ま
す。順序はどちらでもいいのですが、まず smtpfeed を用意します。これは sendmail と一緒
に働いて、配送を高速化するしくみです。
【pkgsrc - smtpfeed】
/usr/pkgsrc/mail/smtpfeed/ で make します。make install すると次のような表示が出ます。
% make install
....
$NetBSD: MESSAGE,v 1.4 2001/01/29 11:34:32 wiz Exp $
The executable for smtpfeed-1.15 is installed into
/usr/pkg/libexec/smtpfeed.
You'll need to prepare (1) sendmail with WIDE patch applied,
and (2) properly configured sendmail.cf.
(1) is done in the mail/sendmail package.
つまり 入った位置を知らせるのと、その後に (1) WIDE patch の入った sendmail を作っ
て、(2) sendmail.cf も用意して下さい。(1) は mail/sendmail で用意出来ますよというこ
とです。(この情報は後からなら
% pkg_info -D smtpfeed
とすると表示されます)
【pkgsrc - sendmail + Wide Patch】
それで、上に書いてある通りに /usr/pkgsrc/mail/sendmail に行って make すると
% cd /usr/pkgsrc/mail/sendmail
% make
次のように言われることがあるかも知れません。
===> sendmail-8.11.6nb1 has an unacceptable license: no-profit.
===> To build this package, add this line to your /etc/mk.conf:
===> ACCEPTABLE_LICENSES+=no-profit
その時には (もしこの sendmail のプログラムを売って何か商売しようというのでなければ)、
書いてある通りに /etc/mk.conf (の一番最後) に上の最後の行を加えます。そうしておいて
make
とすると、WidePatch の入ったものを作ってくれます。これで、make install すると
/usr/pkg/libexec/sendmail/sendmail
に入ります。
最後に
$NetBSD: MESSAGE,v 1.5 2001/01/29 11:34:32 wiz Exp $
To use "sendmail-8.11.6nb1" as the system's mail transport agent you have
to install "/usr/pkg/etc/mailer.conf.sendmail" as global mailwrapper
configuration file. The command below will do that for you:
===========================================================
全体のメール取扱表として、/usr/pkg/etc/mailer.conf.sendmail
というのを用意してあげたから、それを /etc/mailer.conf として使いなさい
というようなことを言われるので、その下に書いてある通りに
ln -fs /usr/pkg/etc/mailer.conf.sendmail /etc/mailer.conf
としておきます。
【cf/m4 を使って sendmail.cf を作成】
/usr/pkgsrc/mail/smtpfeed/work/smtpfeed-1.15/INSTALL.j
(等)を見ると、その 「3.B m4 tool を利用」
の項目に
FEATURE(nocanonify)dnl
MAILER_DEFINITIONS
Msmtpf, P=/usr/sbin/smtpfeed, F=mDFMuXz, S=11/31, R=21, E=\n, L=990,
T=DNS/RFC822/SMTP, A=smtpfeed
MAILER(smtp)dnl
define(`SMART_HOST', `smtpf:LMTP')dnl
を追加して下さいとあるので、この中の三行目の /usr/sbin/smtpfeed の部分の文字だけは
/usr/pkg/libexec/smtpfeed に変更してから
/usr/src/gnu/usr.sbin/sendmail/cf/cf/netbsd-proto.mc
の最後にそれを書き加えます。(/usr/src は別節の【/usr/src について】... に説明があ
りますが、無くても作業は可能です)
加えた後は次のようになっています。
netbsd-proto+smtpfeed.mc:
include(`../m4/cf.m4')
VERSIONID(`@(#)netbsd-proto.mc $Revision: 1.1.1.1 $')
OSTYPE(bsd4.4)dnl
DOMAIN(generic)dnl
FEATURE(genericstable,DATABASE_MAP_TYPE` -o 'MAIL_SETTINGS_DIR`genericstable')
FEATURE(mailertable, DATABASE_MAP_TYPE` -o 'MAIL_SETTINGS_DIR`mailertable')
FEATURE(virtusertable,DATABASE_MAP_TYPE` -o 'MAIL_SETTINGS_DIR`virtusertable')
FEATURE(domaintable, DATABASE_MAP_TYPE` -o 'MAIL_SETTINGS_DIR`domaintable')
FEATURE(access_db, DATABASE_MAP_TYPE` -T -o 'MAIL_SETTINGS_DIR`access')
FEATURE(`redirect')
FEATURE(`no_default_msa')
FEATURE(nocanonify)
MAILER(local)dnl
MAILER(smtp)dnl
# Enable IPv6. IPv6 is marked as optional so the configuration file
# can be used on IPV4-only kernel as well.
DAEMON_OPTIONS(`Family=inet, address=0.0.0.0, Name=MTA, Modifiers=O')dnl
DAEMON_OPTIONS(`Family=inet6, address=::, Name=MTA6, Modifiers=O')dnl
# smtpfeed-1.18
dnl -------------------------
dnl smtpfeed
dnl -------------------------
MAILER_DEFINITIONS
Msmtpf, P=/usr/pkg/libexec/smtpfeed, F=mDFMuXz, S=11/31, R=21, E=\n, L=990,
T=DNS/RFC822/SMTP, A=smtpfeed
define(`SMART_HOST', `smtpf:LMTP')dnl
この作業は
% cd /usr/pkgsrc/mail/sendmail/work/sendmail-8.11.6/cf/cf/
して行なうのも一つのやり方です。
上の内容をそのディレクトリに netbsd-proto.mc+smtpfeed.mc として保存し
./Build netbsd-proto.mc+smtpfeed.cf とすると sendmail.cf がそういう名前で
作成されます。そのまますぐに
/usr/pkg/libexec/sendmail/sendmail -bt -d0.1 -v -C netbsd-proto.mc+smtpfeed.cf
のようにすると、address test mode で試しに起動することが出来ます。
makoto@harry 12:14:09/011220(...cf/cf)# \
? /usr/pkg/libexec/sendmail/sendmail -bt -d0.1 -v -C netbsd-proto.mc+smtpfeed.cf
Version 8.11.6+3.4W
Compiled with: MAP_REGEX LOG MATCHGECOS MIME7TO8 MIME8TO7 NAMED_BIND
NETINET NETINET6 NETISO NETUNIX NEWDB NIS QUEUE SCANF SMTP
TCPWRAPPERS USERDB XDEBUG QUICK_RESPONSE MULTI_MAILER
DYNAMIC_TOBUF MAILER_PREF CLIENT_SMTP_CONFIG CTE8CHECK
OO_NULLSENDER CF_ALIASING MF_SEPARATE MASKED_ADDR SPR_CON_CACHE
FORWARDPROGCTL MAILER_TIMEOUTS CHECK_WARNING
============ SYSTEM IDENTITY (after readcf) ============
(short domain name) $w = harry
(canonical domain name) $j = harry.ki.nu
(subdomain name) $m = ki.nu
(node name) $k = harry
========================================================
ADDRESS TEST MODE (ruleset 3 NOT automatically invoked)
Enter <ruleset> <address>
>
ここは ^D で抜けます。以上のように問題なければ、
mv /etc/mail/sendmail.cf /etc/mail/sendmail.cf-1.5.2
cp netbsd-proto.mc+smtpfeed.cf /etc/mail
cd /etc/mail
ln -s netbsd-proto.mc+smtpfeed.cf sendmail.cf
のようにして実用とします。
/etc/rc.conf に
sendmail=YES
の行を加えておくと、 sendmail daemon が動くようになります。
|