- - PR -
sendmailで、受信可ですが送信できません
1|2|3
次のページへ»
投稿者 | 投稿内容 | ||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2004-02-19 14:35
みなさんこんにちは、いつもお世話になっております、Psyduckです。
今回はsendmailを使った送信に関して アドバイスをいただければありがたいです。 [1]環境 RedHat7.3 sendmail 8.12.9 [2]現象 sendmailサーバを立ち上げております。 インターネットからのメール受信は問題なく出来ております。 メーラーとしてOutlookExpressを使い 送信サーバとしてこのsendmailサーバのIPアドレスを指定して OutlookExpressから送信すると送信できません。(エラーは[3]参照) 送信サーバとして、ISPが提供しているSMTPサーバを指定すれば 問題なく送信できます。 ちなみに、Linuxのmailコマンドを用いても同じく送信できません。 [3]詳細 送信時にOutlookExpressに現れるエラーメッセージは以下の通りです。 なお、()内は私のコメントです。 −−−−−−−−−−−−−−−−−−−−−− send不可 from 192.168.1.100 (これはLAN内のメールサーバのアドレスで、WANは異なります) 受信者の 1 人がサーバーによって拒否されたため、メッセージを送信できませんでした。 拒否された電子メール アドレス : user1@xxx.com (これは受信者のアドレスです) 件名 'test', アカウント : 'aaa@bbb', サーバー : '192.168.1.100', プロトコル : SMTP, サーバーの応答 : '550 5.7.1 <user1@xxx.com>... Relaying denied. IP name lookup failed [192.168.1.101]', ポート : 25, セキュリティ (SSL): なし, サーバー エラー : 550, エラー番号 : 0x800CCC79 −−−−−−−−−−−−−−−−−−−−−− [4]備考 受信者のメールサーバに、 192.168.1.100からメールを出したという情報だけ行っているので それが原因ではないかと思っています。 自分のドメイン名がそこに現れるように出来ればOKなのではないかと思います。 たぶん、sendmail.mc で、何らかの情報を書き忘れているのではないかと 思っていますが、どうすればいいのか判りません。 おそらく既出の質問ではないかと思っていますが @IT内を検索しても、目的の情報に辿り着けませんでした。 どなたか、アドバイスをいただければ大変ありがたいです。 | ||||||||||||||||||||||||
|
投稿日時: 2004-02-19 16:02
いやぁ、普通はメールサーバーのネットワークアドレスとクライアントのネットワークアドレス
が同じ、、上の例でいうと、 192.168.1. である限り問題なく送信できる筈ですが・・ ひょっとして /etc/mail/access に 192.168.1 RELAY 127.0.0.1 RELAY localhost RELAY localhost.localdomain RELAY こういうの書いてない とか、 /etc/hosts にサーバー・クライアントのホスト名、IPアドレスを 記述してない、とか、 /etc/mail/mailertable にメールで使うドメイン名を記述してない、とか、 /etc/mail/relay-domains にリレー先の FQDN 書いてない、とか。。。 どうでしょう? | ||||||||||||||||||||||||
|
投稿日時: 2004-02-19 16:07
こんにちは〜。
サーバの応答が 「Relaying denied」 というからには、サーバ側でメールのリレーを 拒否する設定にしていると思われるのですが…。 RHL では、デフォルトで提供されている sendmail.cf を利用した場合、127.0.0.1 からの接続しか受け付けないように設定されている、とある本に記述されているの ですが、その点はどうでしょう? sendmail.mc でいうところの DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1,Name=MTA') です。 上記のままですと、sendmail がインストールされているサーバからしかメールを送信 できません。 こちらのスレッドも参照してみてくださいね。 http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?forum=10&topic=8973 | ||||||||||||||||||||||||
|
投稿日時: 2004-02-19 16:25
どもも。がると申します。
んと、とりあえず状況を整理してみたいのですが。 ・SMTPサーバ:RedHat7.3 上の sendmail 8.12.9 がありまして。 例えばこのSMTPサーバの受信すべきドメインがsmtp.comだとして。 *外部SMTPサーバから@smtp.comへメールを送ると、正しくmailboxに格納される *問題になるSMTPからメールを送ろうとするとNGである という認識でよいでしょうか? とりあえず上記認識を基準に、もう少し詳細を調べていきたいと思います。 当面、まずポイントは ・根本的に送れないのか ・別IPからだから送れないのか を判断したく思います。 mailコマンドを…との事なので恐らく「根本的に」NGだとは思うのですが、 一応念のため、もう少し直接的にアタックしてみたいかと思います。 1.内部からアタック SMTPサーバのコンソールにloginしてください。 以降、コンソールからの操作になります。
で、SMTPサーバにアクセスします。 あとはSMTPサーバとのやり取りになります。 基本的には
で一発目のご挨拶を。
で自分のアドレスを、
で送りたいメールアドレスを指定します。 その後
でメールの入力モードに入ります。 注意点は「メールヘッダからの入力」になるので。 例えば以下のように入力してくださいませ。
本文の直前の空改行を忘れずに^^ 本文の入力が終わったら、^d(コントロール+d)で終了させると メールが送れる…はずです。 ここでNGだと「そもそもメールが送れない」ことになります。 1.内部からアタック2 同じく内部から。ただし、telnetを telnet SMTPサーバのIP smtp としてから後は同様に。 3.外部から 適当な、Winodwsあたりでよいので、マシンを選択します。 telnet SMTPサーバのIP smtp でtelnet接続して、後は同様に。 これで「どこで引っかかってるか?」が大体判定できます。 ------------ んで。 多分127.0.0.1以外がはじかれてると思うです。 もしそうだとすると、九分九厘 /etc/mail/access ファイル関連かなぁ、と。 このファイルは、簡単に言うと「SMTPでの送信を受け付けてもいい IPアドレスが書き込める」モノだと思ってもらってよいと思います。 # 実際にはOKとNGの両方が書き込めるのですが ここに、LANからであれば内部ネットワークとかドメインとかを 指定してみてください。 で、 makemap hash /etc/mail/access < /etc/mail/access を実行してからsendmailプロセスを再起動、っと。 ----------- これは「不用意なリレーをさせないため」の、SMTPサーバの多くが 持つ基本的な防御方針のためです。 治って一段落してから ・SMTP ・リレー ・不正 あたりをキーにgoogleあたりで調べて色々なPageを読むと、 バックボーンが見えてくると思います ^^ 追伸 qmailも使いやすいですよ〜 っと、個人的な好みから会話をしてみる(笑 | ||||||||||||||||||||||||
|
投稿日時: 2004-02-20 05:09
こんにちは、Psyduckです。
コブラさん、早速のレスをどうもありがとうございます。 >/etc/mail/access に > >192.168.1 RELAY >127.0.0.1 RELAY >localhost RELAY >localhost.localdomain RELAY 192.168.1 RELAY がありませんでしたので、この1行を加えて sendmailを再起動しましたが 結果は変わりませんでした。 >/etc/hosts にサーバー・クライアントのホスト名、IPアドレスを 記述してない、とか、 記述されていました。 >/etc/mail/mailertable にメールで使うドメイン名を記述してない、とか、 このファイルは、存在していましたが空のファイルでした。 どのように記述すべきなのか教えていただけませんでしょうか? >/etc/mail/relay-domains にリレー先の FQDN 書いてない、とか。。。 これは、ファイルを検索してみましたが どこにも見当たりませんでした。 どのように作成して何を記述すべきか教えていただければ幸いです。 はゆるさん、どうもありがとうございます。 >DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1,Name=MTA') 教えていただいたURLを参考にして DAEMON_OPTIONS(`Port=smtp,Addr=0.0.0.0, Name=MTA') を加えて、sendmail.cfを再作成してから再起動しましたが 現象は変わりませんでした。 | ||||||||||||||||||||||||
|
投稿日時: 2004-02-20 05:51
がるさん、レスポンスをありがとうございます。
>*外部SMTPサーバから@smtp.comへメールを送ると、正しくmailboxに格納される >*問題になるSMTPからメールを送ろうとするとNGである おっしゃる通りです。 問題切り分けがやりやすいかと思い OutlookExpressに表示されるエラーメッセージと sendmailサーバに残っている送信時のエラーを以下に載せます。 sendmailサーバ −−−−−−−−−−−−−−−−−−−−−−−−−− Feb 19 12:10:23 xxxxx sendmail[xxxxx]: xxxxxxxx009774: to=<user1@xxx.com>, ctladdr=<root@localhost.localdomain> (0/0), delay=16:21:37, xdelay=00:06:18, mailer=esmtp, pri=5880347, relay=mx.xxx.com. [xx.x.xx.x], dsn=4.0.0, stat=Def erred: Connection timed out with mx.xxx.com. −−−−−−−−−−−−−−−−−−−−−−−−−− OutlookExpress −−−−−−−−−−−−−−−−−−−−−−−−−− 受信者の 1 人がサーバーによって拒否されたため、メッセージを送信できませんでした。 拒否された電子メール アドレス : user1@xxx.com 件名 'test', アカウント : 'xxxxx', サーバー : '192.168.1.100', プロトコル : SMTP, サーバーの応答 : '550 5.7.1 <user1@xxx.com>... Relaying denied. IP name lookup failed [192.168.1.101]', ポート : 25, セキュリティ (SSL): なし, サーバー エラー : 550, エラー番号 : 0x800CCC79 −−−−−−−−−−−−−−−−−−−−−−−−−− 送り先のSMTPサーバが Relay(この場合は受信?)を拒否しているのではないかと思います。 ちなみに、送り先アドレスをまったく違うものに変えても同じ現象です。 だから、何か送信時の設定が違っていて こちらからの情報が足りなくて相手のサーバが拒否しているのかなぁ? とも思っています。 >HELO 適当なドメイン コンソールにログインして telnet 127.0.0.1 smtp は出来たのですが どうもその後の入力方法が違っていたのか、Ctrl/Dで終了できず 仕方が無いのでkillコマンドで終了しました。 という事で、教えていただいた「問題の切り分け」が出来ておりません。 しかし、他のIPアドレスのOutlookExpressから このsendmailサーバを使った送信をした場合も同様の現象ですので >・根本的に送れないのか >・別IPからだから送れないのか これは「根本的に送れない」という事だと思います。 また、前述のように /etc/mail/access を変更してみましたが、現象は変わっていません。 現状での/etc/mail/access ファイルの内容は localhost.localdomain RELAY localhost RELAY 127.0.0.1 RELAY 192.168.1 RELAY になっています。 何かアドバイスをいただければありがたいです。 | ||||||||||||||||||||||||
|
投稿日時: 2004-02-20 09:07
OutlookExpress の " Relaying denied. IP name lookup failed [192.168.1.101]" という内容は見あたりませんか?この内容の log だと,mx.xxx.com に繋ぎに行って timeout で connection が切れたように見えます.
これがあるのに " Relaying denied. IP name lookup failed [192.168.1.101]" ということは,access.db を参照していないんじゃないかと... ちなみに該当の MTA は直接 Internet へ配送してますよね? できれば sendmail.mc を貼り付けてみては? ※話の流れから cf で作ってると思っています.
この場合,sendmail は kill -HUP しなくて良いと思います. | ||||||||||||||||||||||||
|
投稿日時: 2004-02-20 09:36
kazさん、ならびに時間を割いてアドバイスを下さった皆さん。
こんにちは、Psyduckです。 >makemap hash /etc/mail/access < /etc/mail/access >を実行してからsendmailプロセスを再起動 すみませんでした。 これを忘れていました。 access.dbを再作成したら エラーは出なくなりました。 ただ、送信後数分経った今も正常にメールが届いていないのが気になりますが ちょっと様子を見てみようと思います。 お忙しい中、アドバイスをいただき 本当にありがとうございます。m(__)m |
1|2|3
次のページへ»