こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

メールサーバは起動しているはずなのですがテストが成功しません

アクセスありがとうございます。
やはり私だけの力では解決できないようなので、またも質問に来てしまいました。
今回の質問は「sendmail」についてです。
まず、ご報告としてDNSサーバの構築に成功しました。
これでホスト名でApacheにアクセス出来るようになりました。
ここまでは良いのですが次のようなメール配送テストが成功しません。

# useradd mailtest
# mail mailtest@**.jp
Subject: test
This is a test mail.
.
Cc:
# su - mailtest
$ mail
No mail for mailtest
$
と、このように「mailtest」ユーザのメールボックスは空なのです。
しかしWindows機からアウトルックエクスプレスで「burn@**.jp」ユーザから「mailtest@**.jp」宛にテストメールを送信すると、なぜか成功します。
$ mail
Mail version 8.1 6/6/93. Type ? for help.
以下省略

このようにメッセージを受信できます。
またアウトルックエクスプレス上で「burn@**.jp」ユーザから同じく「burn@**.jp」宛にメールを送信して、同じくアウトルックエクスプレス上で「burn@**.jp」宛に届いたメールを受信することが出来ます。
ですのでSMTPサーバやPOP3サーバは機能していると思われます。
Linuxのコマンド行からの「mail」コマンドのみ使えないので疑問に思っています。
これはなぜだか分かりますか。
私はLinux初心者ですので初歩的なミスを犯している可能性があります。
ですので上級者の方が「さすがに、ここの設定をやっていないということはないだろう」とお考えになるケースも十分に考えられますので、どんなに当たり前のことであっても何か思い当たる点がございましたら是非お知らせください。
サーバ機のディストリビューションはRed Hat Linux8.0
SMTPサーバはsendmail-8.12.5-7.i386.rpm
メール受信サーバはimap-2001a-15.i386.rpm
DNSサーバはbind-9.2.1-9.i386.rpmです。
よろしくお願いします。

投稿日時 - 2003-02-02 01:33:45

QNo.461601

暇なときに回答ください

質問者が選んだベストアンサー

>「ユーザ名@linux.**.jp」ですか?
>これを「ユーザ名@**.jp」というようにホスト名を省略するのは、やはりNGですか?
よく読んでくださいね。(と、人に言える立場ではないのだが...)
そんなことは一言も書いていません。正しく設定しさえすれば「ユーザ名@**.jp」で問題ありません。
sendmail -bt -d0.2 -v を実行して表示される内容が書いた通りになるはずだと言っているだけです。
それも sendmail.cf次第とはいえるのですが、いくらなんでもねえ。

>参考URLでご紹介されている書籍はメールサーバの構築だ
>けの解説で1冊の本となっているのですか。
>ということは相当詳しい解説書なのでしょうね。
メールサーバだけですが sendmailとqmailが一緒なんでたいしたことないです。
利用するだけならともかく、設定までやろうとしたら、それぞれ専用の解説書は必要だと思います。
特に、ローカルネットワーク内にメールサーバを置いて、
プロバイダのメールサーバに転送しようとしたら絶対に必要です。
メールサーバの他にも DNS、Apache、あとはPerlですかね。これくらいはそろえて欲しいものです。

>僕が今見ている本はスーパーサーバから始まり、ありと
>あらゆるサーバの構築方法が載っているのでおそらく各
>各は凝縮された内容になっているのでしょう。
私も何冊か持っていますが、ミスプリがあったり、肝心な点(設定例の条件など)が曖昧だったりで、ほとんど役にたちません。

>たしか「RPM」ってRed Hatだけですものね。
>やはり出力形式が微妙に違うのでしょうか。
本題とは関係ない内容ですが。
二重の意味で違います。
RPMを採用しているディストリビューションは、他にも
TurboLinux, Vine, HOLON, LASER5, Mandrake, SuSE, etc, etc ほかにもたくさんあります。
出力形式が違うのは、私の書き方がまずかったですが、おそらくsendmailのバージョンの差でしょう。と、思って確認したら、8.9.3でした。だいぶ古いですね。
多少のカスタマイズは行っているかもれませんが、ディストリビューションによる差はさほどないと思います。元々は同じプログラムですから。

投稿日時 - 2003-02-02 23:09:47

お礼

ご返信ありがとうございます。
サーバを運用するのは大変だなあ、とつくづく感じさせられました。
ひとまず明日、本屋さんに行って参考書を買ってきます。
僕の行きつけのお店に運良く「sendmailとqmailによるLinuxメールサーバー構築ガイド」がありましたら手に取ってみたいと思います。
また今の「CGI」の教科書を読み終えたらDNS、Apacheの参考書にも手を出してみたいと思います。
しかし、まずはメールサーバを構築しなければ。
ミスプリについては僕も本当にそう思います。
上級者であればミスプリに気づきエラーを免れることはたやすいですが、僕らにとってはひとしおです。
参考書の内容を信じ込みエラーの原因が解明できないという致命傷に陥ってしまうのですよね。

あと「RPM」っていろんなディストリビューションで採用されていたのですね。
レッドハットパッケージマネージャの略だからRed Hatだけかと思っていました。
しかし様々なディストリビューションが存在するせいでLinuxについての回答が頂きにくいというのは事実ですね。
Linuxについて、いろいろツッコミを入れられないように、もう少し勉強したいと思います。

投稿日時 - 2003-02-03 01:25:55

このQ&Aは役に立ちましたか?

1人が「このQ&Aが役に立った」と投票しています

回答(3)

ANo.2

ああ、CGIの勉強が本来の目的のかたでしたか。

送信できない理由かどうかはともかく、おかしいことは確かだと思います。
(short domain name) $w = ホスト名
(canonical domain name) $j = FQDN
(subdomain name) $m = ドメイン名
となるのが普通だと思います。ホスト名が見当たらないのは何故でしょうね。
でも sendmail.cfは、やはりインストールした状態のままでなにもさわってないんでしょうねぇ。
ひょっとしたら jpがドメイン名とか?

0 mailtest@***.com (***ではなく実在しない適当なやつをいれてください) の結果も $# local ではなく $# smtpにならないとおかしいです。
(TurboLinuxとは出力形式が違うんですね。)
ルールセットは一か所変えると、いろんなところに波及するらしいので、ちゃんとした資料を手元におかれた方が良いでしょう。

ということで、
参考URLをベスト回答とさせていただきたいと思います。
その上で、sendmail.cfをご自身の環境に合わせて一から作られたらいかがでしょう。

※sendmail.cfをベタコピーして貼りつけてはだめですよ。

最後に一つだけ確認してください。
$ /usr/lib/sendmail mailtest (@ドメイン名は不要)
でも送信できませんか。

参考URL:http://www.okweb.ne.jp/kotaeru.php3?q=458375

投稿日時 - 2003-02-02 16:37:03

お礼

ご返信ありがとうございます。
「CGIの勉強が本来の目的のかたでしたか」←こちらは否定できませんが、あわよくばLinuxの操作方法もマスターしてしまおう、という野望も少なからず持っています。

(short domain name) $w = ホスト名
(canonical domain name) $j = FQDN
(subdomain name) $m = ドメイン名
とのことですが、これについては間違いないと思います。短すぎる気もしますが「ホスト名」「FQDN」「ドメイン名」全て設定したとおりに出力されています。
また「sendmail.cfは、やはりインストールした状態のままでなにもさわってないんでしょうねぇ」とのご指摘から、私自身はいじった記憶は全くないのですが絶対という保証はありませんので不安になり一度「RPM」をアンインストールすることにしました。
「sendmail」「sendmail-cf」「sendmail-doc」
以上3つのパッケージをアンインストールしました。
この時点で「/var/spool/mail」ディレクトリが、まだ残っていましたので、やめておけばいいものを私気を利かして、この「/var/spool/mail」ディレクトリを削除してしまいました。
その後「sendmail」「sendmail-cf」「sendmail-doc」各パッケージを再インストールしました。
これにより自動的に「/var/spool/mail」ディレクトリが生成されるものと思っていたのですが、どうも見あたらないのです。
しかたがないので手動で「/var/spool/mail」ディレクトリ及び各ユーザのメールボックスを作成しました(汗)。
さてメールサーバを再インストールしたのですが相変わらず「mail」コマンドは使えません。
ホント訳分かんないっす。
ドメイン名は「**.jp」(英数字2字+.jp)です。
あれ?...となると確かにホスト名が見あたらないですね。
たとえばホスト名が「linux」でドメイン名が「**.jp」だとしたら電子メールアドレスは「ユーザ名@linux.**.jp」ですか?
これを「ユーザ名@**.jp」というようにホスト名を省略するのは、やはりNGですか?
そこで念のため今度はホスト名を省略せずにテストしてみましたが、依然として送信は出来ていないようです。

MarionetteさんTurboLinuxをお使いですか?
たしか「RPM」ってRed Hatだけですものね。
やはり出力形式が微妙に違うのでしょうか。

参考URLでご紹介されている書籍はメールサーバの構築だけの解説で1冊の本となっているのですか。
ということは相当詳しい解説書なのでしょうね。
僕が今見ている本はスーパーサーバから始まり、ありとあらゆるサーバの構築方法が載っているのでおそらく各各は凝縮された内容になっているのでしょう。
ここは僕も思いきって新しい参考書を買ってメールサーバを起てたいと思います。
そこでメールサーバ構築の参考書であれば何でも良いというわけではなく、やはりおすすめは「sendmailとqmailによるLinuxメールサーバー構築ガイドAI出版ISBN4-87193-737-2\2,600」なのですか。
しかし僕の性格上あまり字の多いものやイラストの少ないものは最後まで読み終える自信がありません(汗)。
しかしこのままメールサーバ構築をあきらめるのも後味が悪いので明日、本屋さんに寄ってきます。

ちなみに
$ /usr/lib/sendmail mailtestコマンドでもダメでした。
しかしこれについてはメールサーバを再セットアップした直後で色々な設定などもしていなかったので一概に失敗とは判断できません。
とりあえず今は、いいかげんこのコマンド行から抜け出したいという気持ちが強いので、また明日にします。

投稿日時 - 2003-02-02 20:26:16

ANo.1

本当に「まさか?」ですが、sendmail.cfの
C{LocalIP}またはF{LocalIP}の示しているファイルに
127.0.0.1はありますか。

/var/spool/mqueueに何かファイルがありますか。
有効期限切れで、削除されている可能性があるので、
再度テストして確認してください。

/usr/lib/sendmail -bt -d0.2 -vを実行し、プロンプトの状態で、
> 0 mailtest
> 0 mailtest@**.jp
> 0 mailtest@***.com
のそれぞれの実行結果は?

投稿日時 - 2003-02-02 09:28:32

お礼

ご返信ありがとうございます。
ご指摘いただいた点について早速確認してみましたのでご報告いたします。
まず「sendmail.cf」ファイルの内容なのですが、どうも「C{LocalIP}」及び「F{LocalIP}」の文字列が見あたりません。
:/LocalIP
Pattern not found: LocalIP
となってしまいます。
また「/var/spool/mqueue」ディレクトリの中身は「.」ファイルと「..」ファイルのみでした。
念のため再度メールテストを行い、その直後に確認してみましたが、やはり「.」ファイルと「..」ファイルのみでした。
次に「/usr/lib/sendmail -bt -d0.2 -v」コマンドの実行結果をご報告します。
次のようになりました。
$ /usr/lib/sendmail -bt -d0.2 -v
Version 8.12.5
Compiled with: DNSMAP HESIOD HES_GETMAILHOST LDAPMAP LOG MAP_REGEX
MATCHGECOS MILTER MIME7TO8 MIME8TO7 NAMED_BIND NETINET NETINET6
NETUNIX NEWDB NIS PIPELINING SASL SCANF STARTTLS TCPWRAPPERS
USERDB USE_LDAP_INIT

============ SYSTEM IDENTITY (after readcf) ============
(short domain name) $w = **
(canonical domain name) $j = **.jp
(subdomain name) $m = jp
(node name) $k = **.jp
========================================================

ADDRESS TEST MODE (ruleset 3 NOT automatically invoked)
Enter <ruleset> <address>
> 0 mailtest
parse input: mailtest
Parse0 input: mailtest
Parse0 returns: mailtest
ParseLocal input: mailtest
ParseLocal returns: mailtest
Parse1 input: mailtest
Parse1 returns: $# local $: mailtest
parse returns: $# local $: mailtest
> 0 mailtest@**.jp
parse input: mailtest @ ** . jp
Parse0 input: mailtest @ ** . jp
Parse0 returns: mailtest @ ** . jp
ParseLocal input: mailtest @ ** . jp
ParseLocal returns: mailtest @ ** . jp
Parse1 input: mailtest @ ** . jp
Parse1 returns: $# local $: mailtest @ ** . jp
parse returns: $# local $: mailtest @ ** . jp
> 0 mailtest@***.com
parse input: mailtest @ *** . com
Parse0 input: mailtest @ *** . com
Parse0 returns: mailtest @ *** . com
ParseLocal input: mailtest @ *** . com
ParseLocal returns: mailtest @ *** . com
Parse1 input: mailtest @ *** . com
Parse1 returns: $# local $: mailtest @ *** . com
parse returns: $# local $: mailtest @ *** . com
>
最後の「0 mailtest@***.com」は「*」をそのまま入力して実行しました。

また「sendmail.cf」ファイルにつきましては、とても巨大なファイルなのですが、もしペーストすればご覧いただけますでしょうか。
また、ちょっと分からないのですが「sendmail.cf」ファイルの内容はこちらのBBSに、そっくりそのままペーストしても、差し支えないものなのでしょうか。
少々長くなってしまいましたが以上より何がご不審な箇所は見あたりましたでしょうか。
引き続きご回答いただけますよう、よろしくお願いします。

投稿日時 - 2003-02-02 14:44:23

あなたにオススメの質問