C# SmtpException-连接被远程主机强制关闭。/操作已超时
全部。我在这个项目中的目的是创建一个进程完成警报系统,允许其他程序调用我的程序,并向手机发送一条SMS消息,其中包含一条消息,通知接收者进程完成(在我的例子中是3ds Max渲染) 不幸的是,这段代码完全失败了。在“smtp.Send(msg);”之前,它不会出现任何问题,此时SmtpException通知我远程主机强制关闭了我的“现有连接” 我觉得我应该知道这里发生了什么,但我就是不知道。我在互联网上搜索了好几个小时,找到了与我处境相似的人,但没有人屈尊回应他们的求助。也许我在这里的运气会更好 谢谢大家C# SmtpException-连接被远程主机强制关闭。/操作已超时,c#,email,smtp,smtpclient,C#,Email,Smtp,Smtpclient,全部。我在这个项目中的目的是创建一个进程完成警报系统,允许其他程序调用我的程序,并向手机发送一条SMS消息,其中包含一条消息,通知接收者进程完成(在我的例子中是3ds Max渲染) 不幸的是,这段代码完全失败了。在“smtp.Send(msg);”之前,它不会出现任何问题,此时SmtpException通知我远程主机强制关闭了我的“现有连接” 我觉得我应该知道这里发生了什么,但我就是不知道。我在互联网上搜索了好几个小时,找到了与我处境相似的人,但没有人屈尊回应他们的求助。也许我在这里的运气会更好
有趣的是,远程主机不再强制关闭我的连接。操作只是超时。我不知道为什么它不工作,你确定你的防火墙没有阻止你吗?尝试将telnet连接到SMTP服务器(dos提示符->telnet SMTP.att.yahoo.com 645)。此外,尝试在app.config中添加邮件服务器信息,如下所示:
<system.net>
<mailSettings>
<smtp deliveryMethod="Network" from="testuser@domail.com">
<network defaultCredentials="true" host="smtp.att.yahoo.com" port="645" userName="yourUser" password="yourPass"/>
</smtp>
</mailSettings>
</system.net>
可能有很多原因:
最后一个是最有可能的。解决问题的最佳方法是尝试发送到不同服务器上的不同帐户。即使我关闭防火墙,我也会遇到相同的问题,所以我认为它不是1或2。Outlook似乎没有相同设置的问题,所以我也不认为它是第4个。太好了!因为Outlook有效,应该排除1、2和3(除非你的防火墙限制每分钟的连接数,或者只允许在一天中的某个时间连接,或者有一个“白名单”的程序)。下一步是尝试不同的提供商(Gmail等)。雅虎很可能不“信任”你的机器(选项4),因此它故意拒绝偶尔的连接以阻止垃圾邮件(因为“真正的”邮件客户端稍后将重试)。
<system.net>
<mailSettings>
<smtp deliveryMethod="Network" from="testuser@domail.com">
<network defaultCredentials="true" host="smtp.att.yahoo.com" port="645" userName="yourUser" password="yourPass"/>
</smtp>
</mailSettings>
</system.net>