coLinux日記

coLinuxはフリーソフトを種として、よろずのシステムとぞなれりける。

sendmail インストール その2

2007-04-05 00:39:40 | sendmail
前回、sendmail 8.14.0 でうまくメールが送れないと言いましたが、その辺を説明します。長い行は適当に改行してあります。

/etc/syslog.conf を見ると、
# Log all the mail messages in one place.
mail.*             -/var/log/maillog

ですから、何かメールを送って、/var/log/maillog を見てみます。
$ Mail espiya@www.example.co.jp
...........
# tail /var/log/maillog
...........
Apr  x xx:xx:xx fedora sendmail[7606]: l282UN7M007606: from=espiya, 
  size=54, class=0, nrcpts=1,
  msgid=<2007xxxx0230.l282UN7M007606@fedora.example.co.jp>,
  relay=espiya@localhost
Apr  x xx:xx:xx fedora sm-mta[7607]: l282UNVB007607: 
  from=<espiya@fedora.example.co.jp>, 
  size=353, class=0, nrcpts=1,
  msgid=<2007xxxx0230.l282UN7M007606@fedora.example.co.jp>,
  proto=ESMTP, daemon=MTA, relay=localhost [127.0.0.1]
Apr  x xx:xx:xx fedora sm-mta[7607]: l282UNVB007607: 
  to=<espiya@fedora.example.co.jp>,
  delay=00:00:00, mailer=local, pri=30353, stat=queued
Apr  x xx:xx:xx fedora sendmail[7606]: l282UN7M007606: 
  to=espiya@www.example.co.jp,
  ctladdr=espiya (201/200), delay=00:00:00, xdelay=00:00:00, 
  mailer=relay, pri=30054, 
  relay=[127.0.0.1] [127.0.0.1], dsn=2.0.0, 
  stat=Sent (l282UNVB007607 Message accepted for delivery)
#

ちゃんと送られているようですが、実はこれはキューに入ったままで、実際の配送は行われずいつまで待っても /var/spool/mail に書き込まれません。/var/spool/mqueue のファイルを見ると、aliase ファイルがないからみたいです。sendmail.cf で、
O AliasFile=/etc/mail/aliases

となっていますから、適当に /etc/mail/aliases を作成します。
# cat /etc/mail/aliases
postmaster:     root
MAILER-DAEMON:  postmaster
abuse:          postmaster
postmaster:     root
root:           espiya
#
# newaliases
Cannot rebuild aliases: no database format defined
Cannot create database for alias file /etc/mail/aliases
#

で、newaliase がうまくいきません。sendmail/map.c をみると、
  #if defined(NEWDB) || defined(NDBM)
  ..............
  #else /* defined(NEWDB) || defined(NDBM) */
  if (mode != O_RDONLY)
      usrerr("Cannot rebuid aliases: no database format defined");
  #endif /* defined(NEWDB) || defined(NDBM) */

というわけで、NEWDB か NDBM をコンパイル時に指定すれば解決みたいです。しかしデフォルトでそれがないということは、newaliases しなくても良いということです。データ量も小さいのでこれで OK です。
# /usr/sbin/sendmail -L sm-mta -bd -q1h
# /usr/sbin/sendmail -L sm-msp-queue -Ac -q30m

もう一度メールを送るとうまくいきました。/var/log/maillog は、次のようです。
sm-mta と表示されるのが最初の sendmail が出すメッセージです。
Apr  x xx:xx:37 fedora sendmail[8067]: l286NbM7008067: from=root, 
  size=55, class=0, nrcpts=1,
  msgid=<2007xxxx0623.l286NbM7008067@fedora.example.co.jp>, 
  relay=root@localhost
Apr  x xx:xx:38 fedora sm-mta[8068]: l286NcdY008068:
  from=<root@fedora.example.co.jp>, 
  size=357, class=0, nrcpts=1, 
  msgid=<2007xxxx0623.l286NbM7008067@fedora.example.co.jp>,
  proto=ESMTP, daemon=MTA, relay=localhost [127.0.0.1]
Apr  x xx:xx:38 fedora sendmail[8067]: l286NbM7008067:
  to=espiya@www.example.co.jp, 
  ctladdr=root (0/0), delay=00:00:01, xdelay=00:00:01, mailer=relay, 
  pri=30055, relay=[127.0.0.1] [127.0.0.1], dsn=2.0.0, 
  stat=Sent (l286NcdY008068 Message accepted for delivery)
Apr  x xx:xx:38 fedora sm-mta[8069]: l286NcdY008068:
  to=<espiya@fedora.example.co.jp>,
  ctladdr=<root@fedora.example.co.jp> (0/0), delay=00:00:00, 
  xdelay=00:00:00, mailer=local, pri=30580, dsn=2.0.0, stat=Sent

mail 本体のヘッダも見てみます。
From root@fedora.example.co.jp  Thu Apr  x xx:xx:xx 2007
Return-Path: <root@fedora.example.co.jp>
Received: from fedora.example.co.jp (localhost [127.0.0.1])
   by fedora.example.co.jp (8.14.0/8.14.0) with ESMTP id l286NcdY008068
   for <espiya@fedora.example.co.jp>; Thu, x Apr 2007 xx:xx:xx +0900
Received: (from root@localhost)
   by fedora.example.co.jp (8.14.0/8.14.0/Submit) id l286NbM7008067
   for espiya@www.example.co.jp; Thu, x Apr 2007 xx:xx:xx +0900
Date: Thu, x Apr 2007 xx:xx:xx +0900
From: root <root@fedora.example.co.jp>
Message-Id: <2007xxxx0623.l286NbM7008067@fedora.example.co.jp>
To: espiya@fedora.example.co.jp
Subject: TEST
Status: RO

送り手は、root@fedora.example.co.jp です。受け手は、espiya@fedora.example.co.jp で、たとえ espiya@www.example.co.jp に送っても書き換えられます。

以上でインストール完了です。次回、m4 の使い方を調べてから、sendmail.mc 周りで遊んでみたいと思っています。
コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする