このページは福井県立大学の田中求之が2006年1月まで運用していた Mac のサーバ運用に関する会議室 「Web Scripter's Meeting」の記録です。情報が古くなっている可能性がありますのでご注意ください。

sendmail

発言者:SIZE
( Date Thursday, December 13, 2001 21:37:20 )


初めて投稿させていただきます。
SIZE と申します。
最近 Mac OS X 10.1 で CGI の勉強を始めましたのですが、
メールフォームで送信後に送信内容が確認できる形の
ものを作りました。
sendmail を通さなければすぐ送信内容が出るのですが、
sendmail を通すと1分くらい送信に時間がかかります。
送信はできているのは確認済みです。
consoleで確認すると以下のエラー(?)がでています。
なんとか頑張って頑張って送信してくれてるみたいです。
-----------------------------------------------------------------
Dec 13 21:06:12 localhost sendmail[602]: My unqualified host name (localhost) unknown; sleeping for retry

Dec 13 21:07:12 localhost sendmail[602]: unable to qualify my own domain name (localhost) -- using short name

Dec 13 21:07:12 localhost sendmail[602]: My unqualified host name (localhost) unknown; sleeping for retry

Dec 13 21:08:13 localhost sendmail[602]: unable to qualify my own domain name (localhost) -- using short name
-----------------------------------------------------------------
ホストネームが短いってことでしょうか?
ここ3日間ずっと行き詰まっています。
どなたかご教授いただけませんでしょうか?

SIZE さんからのコメント
( Thursday, December 13, 2001 21:44:21 )

追記です。sendmail は Mac OS X 標準のものです。
よろしくお願いします。

なか さんからのコメント
( Friday, December 14, 2001 08:08:44 )

はじめまして、なかです。
> using short name
とあるのは sendmail.cnf内で定義されているshort domain nameのこと
だと思います。端末より
$ sendmail -bt -d0.2
とするとどんなかんじですか?

「sendmailとqmailによるLinuxメールサーバー構築ガイド」
高橋隆雄 著 エーアイ出版
ISBN4-87193-737-2
が参考になるとおもいます。

なか さんからのコメント
( Friday, December 14, 2001 08:11:36 )

訂正です。sendmail.cnfはsendomail.cfの誤りです。

SIZE さんからのコメント
( Friday, December 14, 2001 09:25:25 )

なか さん はじめまして。
コメントありがとうございます。

$ sendmail -bt -d0.2 としましたところ、
--------------------------------------------------------------------
Version 8.10.2
 Compiled with: MAP_REGEX LOG MATCHGECOS MIME7TO8 MIME8TO7 NAMED_BIND
                NETINET NETINFO NETISO NETUNIX NEWDB NIS QUEUE SCANF SMTP
                USERDB XDEBUG

============ SYSTEM IDENTITY (after readcf) ============
      (short domain name) $w = localhost
  (canonical domain name) $j = localhost
         (subdomain name) $m = <null>
              (node name) $k = localhost
========================================================

WARNING: local host name (localhost) is not qualified; fix $j in config file
ADDRESS TEST MODE (ruleset 3 NOT automatically invoked)
Enter <ruleset> <address>
--------------------------------------------------------------------
と、こんな感じです。

正直言ってわからないのですが、sendmail.cf で定義がちゃんとされてない
ということなんでしょうか?
変更するとすれば、どう設定すればいいんでしょうか?
今から紹介してくださった参考書籍を探してみます。
本当にありがとうございました。

熊。 さんからのコメント
( Sunday, December 16, 2001 14:52:03 )

はじめまして、熊。です。
私もMacOSX(10.1)でperlやっています。

hostconfig のHOSTNAME を -AUTOMATIC- から適当な名前に変えると動いてくれます。

sendmail -v 宛先
すると、依然として忌まわしいエラーが出るけど。

KENTA さんからのコメント
( Wednesday, December 19, 2001 08:30:52 )

熊。さん、初めまして。
コメントありがとうございます。
レス遅くてすいません。
やってみます。ありがとうございました。

KENTA さんからのコメント
( Wednesday, December 19, 2001 14:19:21 )

みなさま、コメントありがとうございました。
あっという間にメールを送信可能になりました。
hostsファイルを修正しました。
本当にありがとうございました。

Hyodo さんからのコメント
( Friday, December 21, 2001 18:10:41 )

MacOSXを使っていないので外しているかもしれませんが<br>
hostconfigを書き替えない方法もありそうです(OSX Server 1.xで確認)。<br>
ひとつはsendmail.cfのなかドメイン名を指定している部分で<br>
直接FQDN(full qualified domain name)(=長い名前)を指定する方法。<br>
もうひとつはNetinfoManagerで自分のマシン名にFQDNを併記する方法。<br>

KENTA さんからのコメント
( Saturday, December 22, 2001 00:34:51 )

Hyodo さん、コメントありがとうございます。
僕が今回のエラーで修正したのは
hosts
というファイルのみでhostconfigはいじっていません。
ちなみに
----------------------------------------------------------
# 127.0.0.1 localhost
127.0.0.1 localhost mailhost.xxx.xxx
----------------------------------------------------------
というような感じで書き換えました。
UNIX初心者なもので、あんまりよくわかってないですけど・・・
とにかくエラーは解消しました。
そして、一瞬でメールを送れるようになりました。
上記のような感じで書き換えて、
なかさんに教えていただいた$ sendmail -bt -d0.2 としましたところ、
WARNING がメッセージが消えて
-------------------------------------------------------------------
============ SYSTEM IDENTITY (after readcf) ============
      (short domain name) $w = mailhost
  (canonical domain name) $j = mailhost.xxx.xxx
         (subdomain name) $m = xxx.xxx
              (node name) $k = localhost
========================================================
-------------------------------------------------------------------
と表示されるようになりました。
ホントに皆様のおかげです。感謝します。

makkoto さんからのコメント
( Monday, January 28, 2002 01:31:03 )

おそくなりましたが、解決方法をはっきりさせたいと思います。
このエラーはメールサーバマシンを検出できないということですから、
/etc/hosts
の
127.0.0.1
に、メールサーバ名を追加してやれば、問題無く動作すするはずです。
例)メールサーバは、 mx1,hoge.com とします。
    127.0.0.1 localhost localhost.localdomain mx1

今井真人 さんからのコメント
( Monday, January 28, 2002 07:08:06 )

/etc/hostsにローカル側のIPアドレスに対する逆引は登録しておいたほうが
高速にサーバとして動作する例がよくあります。

netatalk,samba,telnetなどなど全てに関係してきます。

私がよくやる手ですが、こんな風に書いたりします。

192.168.1.1 192-168-1-1
192.168.1.2 192-168-1-2
192.168.1.2 192-168-1-3
192.168.1.2 192-168-1-4
192.168.1.2 192-168-1-5
・・・・・・・・・・・・・

原田 さんからのコメント
( Wednesday, February 20, 2002 10:50:24 )

私はMac OS X Server 10.1.2を使っていますが、同じような問題を抱えてい
ます。どなたかアドバイスが頂けたら非常に助かります。

私の場合はAppleMailでもsendmailでもなんとか送信できるのですが、受信
できないのです。ログインできても届いているはずのメールがないのです。
また、バーチャルドメインを使っているのも起因しているかもしれません。

---- Terminalログここから --------------------------
harada% sendmail -bt -d0.2
Version 8.10.2
 Compiled with: MAP_REGEX LOG MATCHGECOS MIME7TO8 MIME8TO7 NAMED_BIND
                NETINET NETINFO NETISO NETUNIX NEWDB NIS QUEUE SCANF SMTP
                USERDB XDEBUG
Masx: Warning: P=[TCP] is deprecated, use P=[IPC] instead
Masx: Warning: P=[TCP] is deprecated, use P=[IPC] instead
Masx: Warning: P=[TCP] is deprecated, use P=[IPC] instead
Masx: Warning: P=[TCP] is deprecated, use P=[IPC] instead

============ SYSTEM IDENTITY (after readcf) ============
      (short domain name) $w = lastG4
  (canonical domain name) $j = lastG4
         (subdomain name) $m = <null>
              (node name) $k = lastG4
========================================================

WARNING: local host name (lastG4) is not qualified; fix $j in config file
ADDRESS TEST MODE (ruleset 3 NOT automatically invoked)
Enter <ruleset> <address>

---- Terminalログここまで --------------------------

以下のように試してみても同じ結果でした。

/etc/hostsの127.0.0.1に、メールサーバ名を追加

    127.0.0.1 localhost 自分のドメイン名 mx1

うーん。困った。よろしくお願いいたします。

森下 さんからのコメント
( Wednesday, February 20, 2002 22:13:52 )

/etc/hostsって、ダミーファイルだったような気が・・・・。

ドメインがさっぱり解決されていないのが原因だと思います。
一番手っ取り早いのは、ローカルでDNSを動かしちゃうのがいいかと・・・。

#でも、Version 8.10.2
#って、ちょと古いですねえ・・・。なんか、穴があったような気もする・・。

adni@akitan.jp さんからのコメント
( Saturday, March 23, 2002 20:26:24 )

SendMailが不調で、受信が出来なくなりました。OSX1.3にしたのが・・・いけなかったのか?そういえば、resolv.confも書き換えられていたので、他にも書き換えられているのでしょうか?
ServerAdminの所業に疑惑の目です。

→  http://akitan.jp

rojin さんからのコメント
( Friday, November 29, 2002 11:41:14 )

Masx: Warning: P=[TCP] is deprecated, use P=[IPC] instead
Masx: Warning: P=[TCP] is deprecated, use P=[IPC] instead
Masx: Warning: P=[TCP] is deprecated, use P=[IPC] instead
Masx: Warning: P=[TCP] is deprecated, use P=[IPC] instead

上の警告は、
/etc/mail/sendmail.cf
このファイル内の「IPC」を「TCP」に変えたら消えるのじゃ