• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:メールサーバは起動しているはずなのですがテストが成功しません)

メールサーバのテストが成功しない!なぜ?

このQ&Aのポイント
  • メールサーバのテストが成功しない理由を探っています。
  • Windows機からのメールテストは成功するが、Linuxのコマンド行からのテストはできない。
  • SMTPサーバやPOP3サーバは正常に動作している可能性があるが、Linuxの設定に問題があるかもしれない。

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

  • ベストアンサー
回答No.3

>「ユーザ名@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でした。だいぶ古いですね。 多少のカスタマイズは行っているかもれませんが、ディストリビューションによる差はさほどないと思います。元々は同じプログラムですから。

zyousuke
質問者

お礼

ご返信ありがとうございます。 サーバを運用するのは大変だなあ、とつくづく感じさせられました。 ひとまず明日、本屋さんに行って参考書を買ってきます。 僕の行きつけのお店に運良く「sendmailとqmailによるLinuxメールサーバー構築ガイド」がありましたら手に取ってみたいと思います。 また今の「CGI」の教科書を読み終えたらDNS、Apacheの参考書にも手を出してみたいと思います。 しかし、まずはメールサーバを構築しなければ。 ミスプリについては僕も本当にそう思います。 上級者であればミスプリに気づきエラーを免れることはたやすいですが、僕らにとってはひとしおです。 参考書の内容を信じ込みエラーの原因が解明できないという致命傷に陥ってしまうのですよね。 あと「RPM」っていろんなディストリビューションで採用されていたのですね。 レッドハットパッケージマネージャの略だからRed Hatだけかと思っていました。 しかし様々なディストリビューションが存在するせいでLinuxについての回答が頂きにくいというのは事実ですね。 Linuxについて、いろいろツッコミを入れられないように、もう少し勉強したいと思います。

その他の回答 (2)

回答No.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
zyousuke
質問者

お礼

ご返信ありがとうございます。 「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コマンドでもダメでした。 しかしこれについてはメールサーバを再セットアップした直後で色々な設定などもしていなかったので一概に失敗とは判断できません。 とりあえず今は、いいかげんこのコマンド行から抜け出したいという気持ちが強いので、また明日にします。

回答No.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 のそれぞれの実行結果は?

zyousuke
質問者

お礼

ご返信ありがとうございます。 ご指摘いただいた点について早速確認してみましたのでご報告いたします。 まず「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に、そっくりそのままペーストしても、差し支えないものなのでしょうか。 少々長くなってしまいましたが以上より何がご不審な箇所は見あたりましたでしょうか。 引き続きご回答いただけますよう、よろしくお願いします。

関連するQ&A