Delphi 处理SMTP的端口25块

Delphi 处理SMTP的端口25块,delphi,smtp,indy,Delphi,Smtp,Indy,我有一个Delphi7应用程序,我写的,我已经分发给住在一个遥远的地方的合作伙伴。该应用程序使用IndyDirect IdSMTP组件将邮件发送到我拥有的邮件服务器。邮件服务器本身没有问题。在我朋友搬家之前,这个应用程序一直运行良好。我的朋友最后来到了世界的一个地方,他的ISP阻止了端口25。这将阻止我的Delphi应用程序向我的邮件服务器发送电子邮件 ISP表示,他们确实允许587端口作为25端口的替代端口。我的问题是,将IdSMTP组件的端口属性从25更改为587,然后重新编译源代码并给我的

我有一个Delphi7应用程序,我写的,我已经分发给住在一个遥远的地方的合作伙伴。该应用程序使用IndyDirect IdSMTP组件将邮件发送到我拥有的邮件服务器。邮件服务器本身没有问题。在我朋友搬家之前,这个应用程序一直运行良好。我的朋友最后来到了世界的一个地方,他的ISP阻止了端口25。这将阻止我的Delphi应用程序向我的邮件服务器发送电子邮件

ISP表示,他们确实允许587端口作为25端口的替代端口。我的问题是,将IdSMTP组件的端口属性从25更改为587,然后重新编译源代码并给我的朋友一个更新的.exe,这是一个简单的问题吗?有人知道邮件服务器是否需要以任何方式重新配置吗


谢谢。

是的,邮件服务器需要重新配置。现在它正在监听端口25;您需要将其配置为在587上侦听。对于大多数现成的邮件服务器来说,这应该相当简单


另外,我建议将SMTP端口放入一个配置文件中,您可以从Delphi代码中读取该文件;然后,如果端口再次更改,您所要做的就是更新配置文件,而不是重新编译并重新发送给您的朋友。你甚至可以让你的朋友来做这件事——只需打开smtp.config并将“587”更改为“xyz”,然后重新启动程序。

我同意布赖恩的观点,但我会做一个小的更改。首先,我要为客户端添加一个功能,使其能够使用多个端口25587等连接到SMTP服务器。。但是,这意味着您更改客户端软件的方式是,如果客户端软件无法使用一个端口号连接到SMTP服务器,它将尝试其他端口号。当它成功连接到SMTP服务器时,您将存储该端口,以便下次尝试使用该端口时,在尝试始终查找未阻止的端口时应避免可能的速度减慢。现在,您的服务器必须始终侦听所有这些可能的端口。这个解决方案最好的一点是,即使用户移动到另一个地方,它也可能不需要任何手动配置。@SilverWarior这是个好主意。您可以获得更好的灵活性和容错性。