Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/google-sheets/3.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# SmtpException-连接被远程主机强制关闭。/操作已超时_C#_Email_Smtp_Smtpclient - Fatal编程技术网

C# SmtpException-连接被远程主机强制关闭。/操作已超时

C# SmtpException-连接被远程主机强制关闭。/操作已超时,c#,email,smtp,smtpclient,C#,Email,Smtp,Smtpclient,全部。我在这个项目中的目的是创建一个进程完成警报系统,允许其他程序调用我的程序,并向手机发送一条SMS消息,其中包含一条消息,通知接收者进程完成(在我的例子中是3ds Max渲染) 不幸的是,这段代码完全失败了。在“smtp.Send(msg);”之前,它不会出现任何问题,此时SmtpException通知我远程主机强制关闭了我的“现有连接” 我觉得我应该知道这里发生了什么,但我就是不知道。我在互联网上搜索了好几个小时,找到了与我处境相似的人,但没有人屈尊回应他们的求助。也许我在这里的运气会更好

全部。我在这个项目中的目的是创建一个进程完成警报系统,允许其他程序调用我的程序,并向手机发送一条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>

可能有很多原因:

  • 运行它的计算机正在阻止连接。例如防火墙/防病毒
  • 计算机本地网络上的设备正在阻止连接。防火墙/路由器配置
  • ISP的网络(机器所在的网络)正在阻止连接
  • 你正在连接的SMTP服务器(Yahoo)不喜欢你的机器

  • 最后一个是最有可能的。解决问题的最佳方法是尝试发送到不同服务器上的不同帐户。

    即使我关闭防火墙,我也会遇到相同的问题,所以我认为它不是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>