CDO 在端口 465 和 587 上连接失败,但在 25 上工作

Posted

技术标签:

【中文标题】CDO 在端口 465 和 587 上连接失败,但在 25 上工作【英文标题】:CDO failed to connect on ports 465 and 587 but works on 25 【发布时间】:2015-02-17 20:15:13 【问题描述】:

我们有一个旧版 FoxPro 应用程序,它使用 CDO for NTS 通过我们的 Exchange 服务器发送 STMP 电子邮件。我们有 3 个位置:本地(应用在与 Exchange 服务器相同的域上运行)、***(应用在通过 *** 连接到域的外部网络上运行)、外部(应用在外部网络上运行并通过 Internet 连接)。

到目前为止,Local 已配置为使用端口 25 和 SSL。 *** 和外部已配置为使用端口 465 和 SSL。 (我从我们的网络管理员那里了解到,Exchange 无法配置为在 465 上执行 SMTPS,我们必须使用 STunnel。

最近,我们对 Exchange 服务器进行了更改,以禁用 SSL 并仅允许 TLS。我们打开了端口 587。因此,根据我的网络管理员的说法,我们现在拥有使用相同 Exchange 接收连接器的端口 25 和 587,并设置为使用 STARTTLS。端口 465 也已配置为使用 STARTTLS 并使用不同的 Exchange 接收连接器;但是,所有属性的配置都与用于 25 和 587 的属性相同。

进行此更改后,我们的 *** 和外部站点无法再通过该应用程序发送电子邮件。他们得到的错误信息是:

OLE IDispatch exception code 0 from CDO.Message.1: The transport failed to connect to the server.

所以,这是目前的情况:

本地 - 可以在 25 上发送,但不能在 465 或 587 上发送 *** - 无法在这些端口中的任何一个上发送 外部 - 无法在这些端口中的任何一个上发送

我也尝试使用相同的代码,并且能够通过 gmail 在端口 465 和端口 25 但不是 587 从我们的系统发送 SMTP。

在这一点上,这已经超出了我的范围,我真的不知道从哪里开始。有人对可能发生的事情有任何想法吗?

我使用 WireShark 试图找出我的客户端和服务器之间正在通信的内容(这将适用于本地场景)。以下是一些结果:

Exchange on port 25 (Worked)

Exchange on port 465 (Fail)

Exchange on port 587 (Fail)

Gmail on port 465 (Worked)

Gmail on port 587 (Fail)

【问题讨论】:

***.com/questions/21402548/… - 打开谷歌并输入 CDO TLS,您将获得有关此问题的大量信息。 【参考方案1】:

我们终于找到了一种解决方法,以防万一有人感兴趣。我们的网络管理员在我们的 Exchange 服务器上安装了 STunnel,并将其配置为监视 465 端口。这让一切恢复正常。

【讨论】:

以上是关于CDO 在端口 465 和 587 上连接失败,但在 25 上工作的主要内容,如果未能解决你的问题,请参考以下文章

查看端口 587、25、110、465、995、143、993 上的 SSL 证书

桌面和移动设备上的 SMTP 端口

阿里云 服务器 邮件发送

无法在端口25上连接smtp服务器

CentOS配置mailx通过465端口发送qq邮件

无法握手具有端口 587 和 server="smtp.gmail.com" 的 ssl 套接字