当我在本地测试时,我能够将 smtp 消息发送到第 3 方 smtp 服务器,但当我将此代码移植到我们的开发服务器时却不能。当我在那里尝试时,我真的不知道,但我认为它没有发出请求。我运行了 firebug、fiddler 并没有从我的代码中看到发送邮件请求的请求。
除了测试主机的 smtp 端点,我正在发送这个 smtp 请求以确保它对我们开放(确实如此),我一直试图弄清楚为什么相同的代码在我的机器上有效,但在我们的 Windows Server 2008 R2 上无效开发箱。
当我在本地测试时,我能够将 smtp 消息发送到第 3 方 smtp 服务器,但当我将此代码移植到我们的开发服务器时却不能。当我在那里尝试时,我真的不知道,但我认为它没有发出请求。我运行了 firebug、fiddler 并没有从我的代码中看到发送邮件请求的请求。
除了测试主机的 smtp 端点,我正在发送这个 smtp 请求以确保它对我们开放(确实如此),我一直试图弄清楚为什么相同的代码在我的机器上有效,但在我们的 Windows Server 2008 R2 上无效开发箱。
您是从代码直接将邮件发送到第 3 方 smtp 服务器,还是通过 2008 机器上的本地 SMTP 服务器路由?
如果您没有在 2008 框上通过(例如)IIS 中的 SMTP 服务进行路由,您可以试试这个,将您的应用程序配置为使用本地服务,并在代码中设置以下内容以将邮件放入 IIS 下的文件夹结构中允许SMTP 服务来处理电子邮件的传递
smtpclient.deliverymethod = smtpdeliverymethod.pickupdirectoryfromiis
然后,您可以为本地 smtp 服务器配置日志记录,并检查本地和远程服务器之间的对话以识别问题。您还可以看到用于排队邮件的文件夹以及其中的实际电子邮件信封(如果您很快的话)
您是否使用 telnet 从 2008 框检查到远程 smtp 服务器的连接以打开与它的对话以消除任何防火墙问题?
如果电子邮件仍然无法通过第三方 SMTP 服务器,则可能是导致您的问题的可传递性问题。是否允许您的服务器 IP 地址为其所在的域发送电子邮件,如果不是,您可能需要针对该域发布一条 SPF 记录以获取您的 DEV 框的 IP 地址。