1

私の WinForms C# プログラムは電子メールを送信します。と を使用MailMessageしましSmtpClientた。Iのコンストラクターでポート587SmtpClientを渡しました。smtp.gmail.com

これは私の友人のコンピューターで動作していますが、試してみると次のエラーが発生します。

System.Net.Mail.SmtpException: Failure sending mail. ---> System.Net.WebException: The remote name could not be resolved: 'smtp.gmail.com'

System.Net.Mail.SmtpException: Operation Timed out

このエラーを修正するにはどうすればよいですか? なぜ私のコンピュータに固有なのですか?

If i use port 25 i get exception : Operation Timed out

If i use port 587 i get exception : The remote name could not be resolved: 'smtp.gmail.com'

if i use port 465 i get exception : Operation Timed out
4

2 に答える 2

4

基本的なネットワークのトラブルシューティングを試してください。まず、IP アドレスで何かを ping できることを確認します。これには DNS は必要ありませんping 173.194.41.86。応答があるかどうか試してみてください。

次に、マシンから www.gmail.com に ping を実行しますping www.gmail.com。これにより、ネットワークが名前を IP アドレスに解決できるかどうかがわかります。上記と同じように、応答で 4 つの IP アドレス ping を取得する必要があります。

そうでない場合は、DNS 構成が正しくありません。静的 IP アドレスを使用している場合は、ネットワーク管理者に確認するか、DNS サーバーを作業マシンと同じに設定する必要があります。動的な場合ipconfig /renewは、DHCP サーバーから最新の設定を取得しようとすることがあります。

www.gmail.com への pingが機能ping smtp.gmail.comした場合は、smtp ホストが解決されているかどうかを確認してください。そうでない場合は、まだ DNS の問題がありますが、smtp ホスト名のみに影響する問題です。

ipconfig /flushdnsローカル DNS キャッシュをクリアして、もう一度やり直してください。本番サーバーでない場合は、再起動してみてください。

nslookupまた、 DNS の名前解決を確認するために使用することもResolve-DnsName、PowerShell で使用することもできますが、おそらく 3.0 でのみ可能です。

また、ファイアウォールの設定を確認してください。

于 2013-03-04T18:26:27.733 に答える
0

SmtpClient で EnableSsl を true にマークします。

smtpClient.EnableSsl = true;

于 2014-05-27T11:38:28.617 に答える