質問者
IPv6用のIPアドレスでメールを送信したい

質問
-
こんにちは
.Net Frameworkにでサポートしているプロトコルについて、ご教授いただけると幸いです。
環境はVisual Studio 2010を使っています。
.Net Frameworkのバージョンとしては、2.0と4.0で確認しています。IPv6環境で、IPv6用のIPアドレスを用いてメールの送信が行えないか確認しています。
てしかし、メールの送信を行えません。
ネットワークアナライザなどで見ても、SMTPのフレームを投げていない様です。そもそも、.NetではIPv6に対応したSMTPに対応していないのでしょうか?
以上、よろしくお願いします。
すべての返信
-
対応していると思います。単にDNSの問題ではありませんか?
SMTPサーバーのアドレスとしてIPv6アドレスを指定した場合はどうなりますか? また、Dns.GetHostAddresses()メソッドでSMTPサーバーのホスト名を検索した際、先頭にIPv6アドレスが含まれますか?
-
回答どうもありがとうございました。
戴いた内容を確認しました。> SMTPサーバーのアドレスとしてIPv6アドレスを指定した場合はどうなりますか?
ソースコードは以下の様に記載しています。
※IPアドレスは一部編集しています、Pingなどの疎通では問題ありません。sc.Host = "fe80::b8a2:dcb5:1111:1111";
sc.Send(senderMail, recipientMail, subject, body);上記を実行しても
ネットワークアナライザで見て、SMTPのフレームが確認出来ませんでした。ICMPv6のフレームにて、
Neighbor solicitationを送信して、Neighbor advertisementを受信したところ
まで確認できています。IPアドレスとMACアドレスは正しい値でした。本来、この後にSMTPが走ると考えているのですが
ちなみに、IPv4のアドレスを指定すると問題なく動作します。
> また、Dns.GetHostAddresses()メソッドでSMTPサーバーのホスト名を検索した際、
> 先頭にIPv6アドレスが含まれますか?ローカルパソコンに、Xmailをメーラーとして設定しまして、上記を実行しましたら
IPv6アドレスが含まれした。何か、重要なキーワードを忘れているのでしょうか?
-
ソースコードは以下の様に記載しています。
※IPアドレスは一部編集しています、Pingなどの疎通では問題ありません。sc.Host = "fe80::b8a2:dcb5:1111:1111";
sc.Send(senderMail, recipientMail, subject, body);上記を実行しても
ネットワークアナライザで見て、SMTPのフレームが確認出来ませんでした。そのsc.Send()でメールそのものは送信できているのですか? 送信できているのなら、IPv6で通信できているでしょうし、ネットワークアナライザでの確認方法に問題があるのではと思います。エラーになるのなら、エラー内容を確認してください。エラーにならずに送信できないとなると…ちょっとわかりません。
# いずれにしてもネットワークアナライザを持ち出すレベルではないような…。
-
質問者です。
回答ありがとうございました。
戴いた内容を色々と試した結果、原因が分かりました。
25番ポートを開放できていませんでした。
Telnetを用いてIPv4のアドレスでアクセスすると問題なく接続出来ました。
しかし、IPv6のアドレスで25番ポートをアクセスしても「接続できませんでした」
という結果になります。
アドレスは、fd::3や2004::203などを強制的に設定して確認しました。※IPv6のアドレスで80番ポートをアクセスするとアクセスでき、netstatで確認
すると、そのアドレスとポート番号が表示されました。IPv6のアドレスで25番ポートをアクセスする方法を調査しているのですが、
解決できていません。何か、方法が(xmailの設定?もしくはWindows?)あったらご教授いただけると
幸いです。