- PR -

IIS+SMTPでメール送信時のエラーについて

1
投稿者投稿内容
wiz
会議室デビュー日: 2005/06/16
投稿数: 14
投稿日時: 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にも送れたのでそれ以外の箇所が原因と思うのですが
どなたか、同じ現象にあわれた方で解決された方や原因が分かる方がいらっしゃいましたら教えていただけないでしょうか?
kaz
ぬし
会議室デビュー日: 2003/11/06
投稿数: 5403
投稿日時: 2005-11-09 20:29
こんばんわ.

送るのと受けるのは違います.
送ることができるだけでよいのですよね?
その WindowsXP はそもそも Internet の SMTP server と直接通信できますか?
おそらく環境から鑑みて NAT して
外部の hotmail の server の MTA と通信する必要があると思います.
そこまで確認できていますか?

そういった理屈もわからずに「とりあえず送れれば...」
というのは,少々甘いのではないかと.
違っていたらゴメンナサイ.
wiz
会議室デビュー日: 2005/06/16
投稿数: 14
投稿日時: 2005-11-10 13:37
kazさん、レス有難うございます。

引用:
送るのと受けるのは違います.
送ることができるだけでよいのですよね?


はい、送信のみです。
引用:

その WindowsXP はそもそも Internet の SMTP server と直接通信できますか?


ローカルにあるSMTPや社内のSMTP以外の外部のSMTPということでしょうか?
上記以外のSMTPということでしたら試していません。
(どこに通信して確認すればよいのかさえ分からない状況です・・・)

引用:
おそらく環境から鑑みて NAT して
外部の hotmail の server の MTA と通信する必要があると思います.
そこまで確認できていますか?



送信できているyahooのメールのヘッダー情報等を見ると
Receivedの箇所のIPが
最初は自分のローカルアドレス
次のReceivedの箇所のIPが
会社のグローバルアドレスになっているので、
hotmailのサーバーとも会社のグローバールアドレスにて
アクセスを行っていると思うのですが、違うのでしょうか?

引用:
そういった理屈もわからずに「とりあえず送れれば...」
というのは,少々甘いのではないかと.
違っていたらゴメンナサイ.



おっしゃる通り、知識がないので甘いのは
分かっているつもりなのですが、少しでも
ヒントになるものはないかと投稿した次第です。
kaz
ぬし
会議室デビュー日: 2003/11/06
投稿数: 5403
投稿日時: 2005-11-11 00:23
引用:

wizさんの書き込み (2005-11-10 13:37) より:

引用:

その WindowsXP はそもそも Internet の SMTP server と直接通信できますか?


ローカルにあるSMTPや社内のSMTP以外の外部のSMTPということでしょうか?
上記以外のSMTPということでしたら試していません。
(どこに通信して確認すればよいのかさえ分からない状況です・・・)


一般的にはそのような場合,
「どこに通信すべきか?」を DNS を参照して決めます.
MX record とはそのような場合に参照される箇所です.
引用:

送信できているyahooのメールのヘッダー情報等を見ると
Receivedの箇所のIPが
最初は自分のローカルアドレス
次のReceivedの箇所のIPが
会社のグローバルアドレスになっているので、
hotmailのサーバーとも会社のグローバールアドレスにて
アクセスを行っていると思うのですが、違うのでしょうか?


そういうことではないです.
それは「単なる記録」ですので.
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 などで出口が絞られていることもありえます.

かなり大雑把に書きましたが,概ねこんな感じです.
wiz
会議室デビュー日: 2005/06/16
投稿数: 14
投稿日時: 2005-11-14 13:58
kazさんレス有難うございます
返答の記入が遅くなりすみません。
引用:

Internet 上の SMTP server と直接 local な IP addres で通信できますか?
それらを実現するために proxy や NAT/NAPT を利用するのです.
Internet 上に private な IP address で通信しようとしたらどうなるか?
その辺は理解されていますか?
header がどうこうではなく,
通信している際に「名乗る IP address」が問題なのです.



社内のPC(プライベートIP)が外部に出る際には、グローバルIPにて
アクセスする事は会社のネットワークの担当者から確認したのですが、
名前解決がうまくいっていないのかもと言われました。

Kazさんのレスの意味を正しく理解出来ていれば良いのですが、
現時点では、言われていることを「なんとなく」レベルでしか理解出来ないので
もう少し知識を付けて、質問が出来るレベルになってから
出直したいと思います。有難うございました。
kaz
ぬし
会議室デビュー日: 2003/11/06
投稿数: 5403
投稿日時: 2005-11-14 19:11
こんばんわ.
引用:

wizさんの書き込み (2005-11-14 13:58) より:

社内のPC(プライベートIP)が外部に出る際には、グローバルIPにて
アクセスする事は会社のネットワークの担当者から確認したのですが、
名前解決がうまくいっていないのかもと言われました。


とすると,NAT or NAPT はしているということですね.
ちなみに名前解決はできていますよね?
MX record を引けるのですから.

引けた MX のいずれかの server の SMTP daemon に直接喋りかけてみては?
> telnet "SMTP server" 25
とすると,SMTP server の 25/tcp,
つまり通常 SMTP daemon が listen している port へ通信しに行きます.
その際,先方の SMTP daemon が反応しなかったり,
無応答状態が続いて timeout するようなら,
なんらかの理由で「名前解決はできるが通信することができない」
という状態なのだと思います.
引用:

Kazさんのレスの意味を正しく理解出来ていれば良いのですが、
現時点では、言われていることを「なんとなく」レベルでしか理解出来ないので
もう少し知識を付けて、質問が出来るレベルになってから
出直したいと思います。有難うございました。


皆さんそんな感じからはじめていると思います.
ガンバッてください.
1

スキルアップ/キャリアアップ(JOB@IT)