Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用SmtpClient,并获取;目标机器主动拒绝它”;_C#_.net_Smtpclient - Fatal编程技术网

C# 使用SmtpClient,并获取;目标机器主动拒绝它”;

C# 使用SmtpClient,并获取;目标机器主动拒绝它”;,c#,.net,smtpclient,C#,.net,Smtpclient,我正在尝试使用System.Net.Mail作为应用程序发送电子邮件,但出现以下异常: System.Net.Mail.SmtpException:发送邮件失败。--> System.Net.WebException:无法连接到远程服务器---> System.Net.Sockets.SocketException:无法建立连接 因为目标机器主动拒绝了它198.238.39.170:25 我使用的代码是: string mailserver = "Scanmail.ofm.wa.lcl"; Ma

我正在尝试使用System.Net.Mail作为应用程序发送电子邮件,但出现以下异常:

System.Net.Mail.SmtpException:发送邮件失败。--> System.Net.WebException:无法连接到远程服务器---> System.Net.Sockets.SocketException:无法建立连接 因为目标机器主动拒绝了它198.238.39.170:25

我使用的代码是:

string mailserver = "Scanmail.ofm.wa.lcl";
MailMessage msg = new MailMessage("albert@einstein.net", "snark@snarky.com", "Very subjective", "A message body!");
SmtpClient client = new SmtpClient(mailserver);
client.Send(msg);
显然,上面的电子邮件地址是虚构的,但在实际代码中,它在系统中使用真实的电子邮件地址。邮件服务器地址是准确的


我忍不住想,我需要在那里放一些安全凭证,但不确定放在哪里——尽管@Andre_Calil的建议表明这不是问题所在,邮件服务器可能配置为阻止我的开发机器连接。那么,如何克服这一问题呢

所以,正如我们刚才所说的,您的服务器可能配置为拒绝来自每台机器的中继,这是推荐的安全设置

在开发计算机上,打开提示符(
命令
)并键入
telnet SMTP\u服务器\u IP\u地址25
。此命令将尝试在端口25(默认SMTP端口)上建立基本套接字连接。如果成功,您仍然需要发现服务器是否需要身份验证

但是,如果没有成功,您将不得不暂停代码,直到获得系统管理员的帮助

另一件要尝试的事情是从应用服务器重复相同的测试,因为SMTP服务器可能被配置为
允许应用服务器
拒绝所有人


关于

您是否在开发机器上运行此代码?服务器可能已配置为拒绝来自其他计算机的中继(这是建议的安全设置)。打开提示,键入
telnet 198.238.39.170 25
,查看是否可以建立连接。如果失败,凭据将不会更改结果。尝试了该操作后,它表示无法打开与主机的连接“连接失败”。那么如何克服这个问题呢?你必须联系系统管理员来检查。您可以通过TS访问另一台机器(可能是服务器)并运行相同的测试吗?它可能已配置为
允许应用程序服务器
拒绝所有人
。明白了吗?尝试了你的建议,我的sendmail测试应用程序在web服务器上运行得很好,所以你的理论得到了验证。如果你把它作为一个“答案”,你会很乐意“接受”它。谢谢1