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

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

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

アクセスありがとうございます。 やはり私だけの力では解決できないようなので、またも質問に来てしまいました。 今回の質問は「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です。 よろしくお願いします。

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

  • ベストアンサー
回答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

  • RedHat7.3をメールサーバーとして利用する際

    いきずまったので質問させてください。 sendmail8.11とimap2001-aの環境です。 ユーザー名を"taka"としクライアントのアウトルックでアカウント設定したのですがメールが送信できるのですがテストメールが受信できません。 taka@mydomain.jpとしています。 また、メールというのはサーバーのどこに保管されるのですか? 例えばtaka宛てに来たメールは一旦サーバーのどこに置かれるのでしょうか? あと、/home/takaにホームページのDocumentRootにしています。ですからinfo@mydomain.jpもwebmaseter@mydomain.jpも同じアカウント設定で受信したいのですがどうすればよろしいのでしょうか? でも他のユーザーを追加(taka以外)する場合例えばbakusuiというユーザーの場合bakusui@mydomain.jp以外ではメール受信できないようにもしたいのです。 初心者ですがどうぞご教授お願いします。

  • 「mail」コマンドと「sendmail」コマンドについてのくだらない質問です

    よろしくお願いします。 電子メールの送受信を行う「mail」コマンドというのがあるのですが、そのほかに「sendmail」というコマンドがあるようです。 この「sendmail」もメールの送受信に使うコマンドでしょうか。 ちなみに、うちの自宅サーバでは「mail」コマンドは使えますが「sendmail」コマンドが使えません。 $ /usr/lib/sendmail というようにフルパスで指定してもダメでした。 5分経っても10分経っても次のプロンプトが表示されずに反応が無くなってしまいますので「Ctrl」+「c」キーで強制的にプロンプトを表示させるしかありません。 ひょっとして最近コマンド名が変わったとか、そういうことでしょうか。 ディストリビューションはRed Hat Linux8.0で SMTPサーバはsendmail-8.12.5-7.i386.rpmとかいうものです。 どなたか教えてください。

  • メールサーバーを作って、受信はできるモノの・・・

    メールサーバーを作ってみて、受信はできるようになりましたが、送信ができません。 受信者の 1 人がサーバーによって拒否されたため、メッセージを送信できませんでした。 拒否された電子メール アドレス : test@*****.ne.jp 件名 'test', アカウント : 'test', サーバー : '*****', プロトコル : SMTP, サーバーの応答 : '550 User not local. Authentication required for relay', ポート : 25, セキュリティ (SSL): なし, サーバー エラー : 550, エラー番号 : 0x800CCC79 とアウトルックで設定をした場合、エラーが返ってきてしまうのです。

  • メールリレーの仕組み

    メールの届く仕組みについて下記の通り認識しております。 user@from.jpからuser@to.jpへメールを送る場合 [クライアント(user@from.jp)](SMTP) -->[メールサーバ(from.jp)](SMTP) -->[メールサーバ(任意)] (SMTP) -->[メールサーバ(to.jp)](SMTP) -->[クライアント(user@to.jp)](POP) この届く経路でメールサーバ(from.jp)は どのような設定でメールサーバ(任意)を 選択しているのでしょうか? メールサーバが設定で選択されている場合、 どんな設定でを行っているのでしょうか? qmail sendmail postfixなどの 設定項目を教えていただけると助かります。 どうぞ宜しくお願いいたします。

  • メールサーバーから削除したメールをサーバーにアップロードしたい

    メールサーバーからoutlook Expressで受信したメールを受信前の状態でメールサーバーにアップロードできますでしょうか

  • 中継メールサーバが受信振分

    現在Linuxのsendmailにて内部メールサーバに中継しているのですが、新たに内部メールサーバが増えました。送信時の制御はいらないですが、外からの受信時にto(xx@aa*.jpのxx部分)を見て振分したいのですが、可能でしょうか?すみませんが、教えてください。

  • Solaris8 から メール送信テストをしたいです

    Linuxでは、 # mail test@test.com Subject: となりメール送信テストが行えますが、 Solarisでは、 # mail airon@localhost となってしまい、手入力で、Subject:を入力しても Linux同様にはメール送信できませんでした。 同じUNIXでも送信方法が異なるからでしょうか? それとも、Sendmail等のサーバ設定がされていない可能性がありますでしょうか?

  • サーバー上のメールが見たい

    初心者です。よろしくお願い致します。 Windows98SE上で、Outlook Expressを使っています。 OEでサーバーが受信したメールを見たいのですが、どうすれば見れるのでしょうか?? ウィルスらしきメールが来ていて、OE上に受信できないものですから、サーバーから削除してしまいたいのです。

  • メールの送信テストについて

    教えてください。 メーラーを使ってインターネット越しにあるSMTPサーバ向けにメールを送るテストを 行いたいです。送り先はまだシステム準備中でインターネットには繋がっているのですがドメイン名でなく、グローバルアドレスでのアクセスになります。宛先のアドレスで例えば@マークの後ろをドメイン名でなく、グローバルアドレスにして、@マーク前を送り先ユーザー名などとしてメールは送れるのでしょうか? 何か方策があれば教えて頂けないでしょうか。送り先のSMTP&Docecotで受信者がメーラーでPOPして受信できているか確認したいです。 よろしくお願いします。

  • mail コマンド connection refused by 192.168.1.1

    SMTPサーバを構築しましたがメールの送信ができません。 ご教授お願いします。 OS:Fedora Core 3 SMTP:Sendmail8.13.1-2 SMTPサーバ:192.168.1.1 SMTPサーバ上のrootユーザーからtest(仮名)ユーザーに送信したいと思ってます。test→rootは正常に送受信できますがroot→testは送信できません。「mail test@ABC.CLASS.com」も「mail test@[192.168.1.1]」も上記状態で失敗します。 エラーメッセージ:Deferred:Connection refused by 192.168.1.1 「/etc/hosts.allow」に「sendmail:127.0.0.1」「sendmail:192.168.1.1」を追記済み。 「netstat」でsmtpの起動は確認済み。 「mailq -Ac」で「(host map (ABC.CLAS.com):deferred)」と表示される。この「ABC.CLAS.com」は「ABC.CLASS.com」と設定しなくてはならないところなのですがこの訂正をどのファイルでしたらよいのかもわからなくなってしまってます。 「dig CLASS.com. MX」では「MX」について回答が返って来ます。 2日くらい考えてみたのですが手に負えません(T_T)。 よろしくお願いします。