C# 使用SmtpClient,并获取;目标机器主动拒绝它”;
我正在尝试使用System.Net.Mail作为应用程序发送电子邮件,但出现以下异常: System.Net.Mail.SmtpException:发送邮件失败。--> System.Net.WebException:无法连接到远程服务器---> System.Net.Sockets.SocketException:无法建立连接 因为目标机器主动拒绝了它198.238.39.170:25 我使用的代码是: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
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