Windows Server2008:打开smtp端口是否不足以发送邮件?

问题描述

| 我已经用C#编写了一个简单的程序来发送邮件通知。它在Windows 7上运行良好,但在Server 2008上运行失败。 我已经阅读了有关它的内容,但是看不到是什么使我无法发送邮件。我已经打开了端口587(Gmail的SSL端口)的传出和传入(TCP),但还是没有运气。我什至为整个程序打开了防火墙。我应该注意Windows Server中的特定设置吗? *编辑-除Windows之外,没有其他防火墙。 堆栈跟踪: System.Net.Mail.SmtpException:发送邮件失败。 ---> System.Net.WebException:无法连接到远程服务器 ---> System.Net.sockets.socketException:无法对套接字执行操作,因为系统缺少足够的缓冲区空间或队列已满74.125 ..:587      在System.Net.sockets.socket.DoConnect(EndPoint endPointSnapshot,SocketAddress socketAddress)      在System.Net.ServicePoint.ConnectSocketInternal处(布尔connectFailure,Socket s4,Socket s6,Socket&套接字,IPAddress&地址,ConnectSocketState状态,IAsyncResult asyncResult,Int32超时,Exception&异常) ---内部异常堆栈跟踪的结尾--- 编辑:我找到了答案:问题与Windows服务器无关。这是因为它无法连接到我的数据库。傻我先前,当我无法连接数据库时出现连接错误,但是现在我得到的只是奇怪的错误消息;其中之一发布在这里。 无论如何,感谢所有帮助!很高兴能尽快获得帮助。     

解决方法

        线索是一个例外,我怀疑与您的防火墙有关: System.Net.Sockets.SocketException:无法在套接字上执行操作 因为系统缺少足够的缓冲区空间,或者因为队列已满 有一篇Microsoft KB文章可能值得回顾,它适用于Windows 2003,但我将同样进行调查:   BUG:当您访问Web服务或使用IPAddress类时,您收到一条“”操作已超时\“错误消息 根据本文,该问题似乎也可能在Windows 2008下发生,尽管该问题与Windows EBS有关,但根本原因似乎相同(向右滚动至页面底部):   EBS控制台每5-7天崩溃一次 基本上,Windows可能会用尽协议绑定。他们描述了一个名为“ 0”的工具,该工具将确定计算机上存在的协议绑定的数量。 这里有关于堆栈溢出的相关文章:   为什么我的C#服务中出现此SocketException?     ,        提供的异常信息是否可能为您提供有关错误之处的线索?那是:   无法在套接字上执行操作   由于系统缺乏而执行   足够的缓冲区空间或   队列已满74.125 ..:587 参见http://blogs.msdn.com/b/sql_protocols/archive/2009/03/09/understanding-the-error-an-operation-on-a-socket-could-not-be-performed-because-the-系统缺少足够的缓冲区空间,或因为队列已满。aspx。 在.NET中,这很可能是由于不处理ѭ1造成的。     ,        首先尝试解决问题,因为问题可能在其他地方:-) 尝试禁用防火墙并尝试一下。这可能与Windows 2008上的防火墙阻止您的方式确实有所不同 尝试运行您要达到的
telnet yourSmtpServer 587