| NetBSD 解説 | sysinst | pkgsrc 各論 | packages | macppc | TsubaiBSD | 絹/software/全文検索
at www.ki.nu

NetBSD 解説

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 が動くようになります。
old pkgsrc

この画面は Jeedosaquin によって表示しています。

1.66 2008/03/08