- - PR -
IIS+SMTPでメール送信時のエラーについて
1
投稿者 | 投稿内容 | ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2005-11-09 18:17
OS XP sp1
VisualStudio.NET2003 IIS 5.1 FRAMEWORK1.1 SMTP ProtocolMicrosoft Corporationバージョン: ビルド 6015 Webサーバー、SMTPサーバーとして使用 ※マシンのIPはローカル(192.168.*.*) SMTPの設定は アクセス、中継とも自分のIPのみとしています。 上記の構成でASP.NETでMail.SmtpMail.Sendを使用してメール送信 を行っているのですが、 アドレスがyahooのメール、自分の会社のものの場合送信できるのですが、 hotmailのアドレスには送信できません。 コンピューターのイベントビューアには *********************************************** 次の理由により、リモート ドメイン 'hotmail.com' へのメッセージの配信に失敗しました。 The connection was dropped by the remote host. *********************************************** また,IISのログでは遅れなかったメールについて ******************************************************************************* 2005-11-08 13:47:29 mc3-f41.hotmail.com OutboundConnectionCommand SMTPSVC1 (コンピュータ名) - 25 EHLO - (メールサーバーのドメイン名) 0 0 4 0 411 SMTP - - - - 2005-11-08 13:47:29 mc3-f41.hotmail.com OutboundConnectionResponse SMTPSVC1 (コンピュータ名) - 25 - - 250-mc3-f41.hotmail.com+(3.0.1.19)+Hello+[221.246.127.57] 0 0 57 0 621 SMTP - - - - 2005-11-08 13:47:29 mc3-f41.hotmail.com OutboundConnectionCommand SMTPSVC1 (コンピュータ名) - 25 MAIL - FROM:<*****@yahoo.co.jp>+SIZE=1376 0 0 4 0 621 SMTP - - - - 2005-11-08 13:47:29 mc3-f41.hotmail.com OutboundConnectionResponse SMTPSVC1 (コンピュータ名) - 25 - - 250+*****@yahoo.co.jp....Sender+OK 0 0 38 0 891 SMTP - - - - 2005-11-08 13:47:29 mc3-f41.hotmail.com OutboundConnectionCommand SMTPSVC1 (コンピュータ名) - 25 RCPT - TO:<*****@hotmail.com> 0 0 4 0 891 SMTP - - - - 2005-11-08 13:47:29 mc3-f41.hotmail.com OutboundConnectionResponse SMTPSVC1 (コンピュータ名) - 25 - - 250+*****@hotmail.com+ 0 0 26 0 1112 SMTP - - - - 2005-11-08 13:47:29 mc3-f41.hotmail.com OutboundConnectionCommand SMTPSVC1 (コンピュータ名) - 25 BDAT - 1376+LAST 0 0 4 0 1112 SMTP - - - - ******************************************************************************* と表示されていました。 また、MXレコードの確認は コマンドプロンプトから確認したところ 以下のように表示されました。(MXレコードがどういうものなのか理解できていないのですが、どこかのHPで同様の現象の際はMXレコードの確認をしてみると出ていましたので・・・、またこの表示自体がが送信出来るはずの結果かどうかも分からないのですが) ******************************************************************************* nslookup -type=mx hotmail.com *** Can't find server name for address 192.168.2.254: Non-existent domain *** Default servers are not available Server: UnKnown Address: 192.168.2.254 Non-authoritative answer: hotmail.com MX preference = 5, mail exchanger = mx3.hotmail.com hotmail.com MX preference = 5, mail exchanger = mx4.hotmail.com hotmail.com MX preference = 5, mail exchanger = mx1.hotmail.com hotmail.com MX preference = 5, mail exchanger = mx2.hotmail.com hotmail.com nameserver = ns1.msft.net hotmail.com nameserver = ns2.msft.net hotmail.com nameserver = ns3.msft.net hotmail.com nameserver = ns4.msft.net hotmail.com nameserver = ns5.msft.net mx3.hotmail.com internet address = 64.4.50.179 mx3.hotmail.com internet address = 65.54.253.99 mx3.hotmail.com internet address = 65.54.167.5 mx3.hotmail.com internet address = 64.4.50.239 mx4.hotmail.com internet address = 65.54.190.230 mx4.hotmail.com internet address = 65.54.244.40 mx4.hotmail.com internet address = 65.54.190.179 mx4.hotmail.com internet address = 65.54.253.230 mx1.hotmail.com internet address = 65.54.166.99 mx1.hotmail.com internet address = 64.4.50.50 mx1.hotmail.com internet address = 65.54.252.99 mx1.hotmail.com internet address = 64.4.50.99 mx2.hotmail.com internet address = 65.54.166.230 mx2.hotmail.com internet address = 65.54.190.50 mx2.hotmail.com internet address = 65.54.252.230 mx2.hotmail.com internet address = 65.54.190.7 ns1.msft.net internet address = 207.46.245.230 ns2.msft.net internet address = 64.4.25.30 ******************************************************************************* このような状態の場合、何が理由でhotmaiにメール送信が出来ないのでしょうか? メール送信プログラム自体は、メールサーバーを会社が使用しているものに 設定すれば、hotmailにも送れたのでそれ以外の箇所が原因と思うのですが どなたか、同じ現象にあわれた方で解決された方や原因が分かる方がいらっしゃいましたら教えていただけないでしょうか? | ||||||||||||||||
|
投稿日時: 2005-11-09 20:29
こんばんわ.
送るのと受けるのは違います. 送ることができるだけでよいのですよね? その WindowsXP はそもそも Internet の SMTP server と直接通信できますか? おそらく環境から鑑みて NAT して 外部の hotmail の server の MTA と通信する必要があると思います. そこまで確認できていますか? そういった理屈もわからずに「とりあえず送れれば...」 というのは,少々甘いのではないかと. 違っていたらゴメンナサイ. | ||||||||||||||||
|
投稿日時: 2005-11-10 13:37
kazさん、レス有難うございます。
はい、送信のみです。
ローカルにあるSMTPや社内のSMTP以外の外部のSMTPということでしょうか? 上記以外のSMTPということでしたら試していません。 (どこに通信して確認すればよいのかさえ分からない状況です・・・)
送信できているyahooのメールのヘッダー情報等を見ると Receivedの箇所のIPが 最初は自分のローカルアドレス 次のReceivedの箇所のIPが 会社のグローバルアドレスになっているので、 hotmailのサーバーとも会社のグローバールアドレスにて アクセスを行っていると思うのですが、違うのでしょうか?
おっしゃる通り、知識がないので甘いのは 分かっているつもりなのですが、少しでも ヒントになるものはないかと投稿した次第です。 | ||||||||||||||||
|
投稿日時: 2005-11-11 00:23
一般的にはそのような場合, 「どこに通信すべきか?」を DNS を参照して決めます. MX record とはそのような場合に参照される箇所です.
そういうことではないです. それは「単なる記録」ですので. Internet 上の SMTP server と直接 local な IP addres で通信できますか? それらを実現するために proxy や NAT/NAPT を利用するのです. Internet 上に private な IP address で通信しようとしたらどうなるか? その辺は理解されていますか? header がどうこうではなく, 通信している際に「名乗る IP address」が問題なのです.
NAT で hint になりませんでしたか? SMTP relay させたければまず, 名前解決できること 名前解決できた Mail exchange と直接通信できること が必要になると思います. 名前解決は内部 DNS が外部 DNS に forward するなどして, 比較的に簡単に実現できるでしょう. でも直接通信するには,前述のように NAT などを利用して global な IP address,つまり送り先の Mail excahnge から 居場所が見える IP address で喋ってあげないといけないのです. でないと,いくら喋りかけても先方の Mail exchange たる SMTP server は その WindowsXP に返答できません. 返答できなければ通信が確立しませんので, 当然 SMTP relay できないわけです. さらには firewall などで出口が絞られていることもありえます. かなり大雑把に書きましたが,概ねこんな感じです. | ||||||||||||||||
|
投稿日時: 2005-11-14 13:58
kazさんレス有難うございます
返答の記入が遅くなりすみません。
社内のPC(プライベートIP)が外部に出る際には、グローバルIPにて アクセスする事は会社のネットワークの担当者から確認したのですが、 名前解決がうまくいっていないのかもと言われました。 Kazさんのレスの意味を正しく理解出来ていれば良いのですが、 現時点では、言われていることを「なんとなく」レベルでしか理解出来ないので もう少し知識を付けて、質問が出来るレベルになってから 出直したいと思います。有難うございました。 | ||||||||||||||||
|
投稿日時: 2005-11-14 19:11
こんばんわ.
とすると,NAT or NAPT はしているということですね. ちなみに名前解決はできていますよね? MX record を引けるのですから. 引けた MX のいずれかの server の SMTP daemon に直接喋りかけてみては? > telnet "SMTP server" 25 とすると,SMTP server の 25/tcp, つまり通常 SMTP daemon が listen している port へ通信しに行きます. その際,先方の SMTP daemon が反応しなかったり, 無応答状態が続いて timeout するようなら, なんらかの理由で「名前解決はできるが通信することができない」 という状態なのだと思います.
皆さんそんな感じからはじめていると思います. ガンバッてください. |
1