如何检查计算机是否可以访问某个URL并发送和接收电子邮件?

时间:2013-07-16 18:15:18

标签: delphi delphi-xe2

使用Delphi XE2,检测计算机是否能够执行以下操作的最可靠方法是什么?

  • 使用没有固定IP地址的HTTP访问特定网站
  • 使用任何本地或远程电子邮件客户端发送和接收电子邮件

2 个答案:

答案 0 :(得分:4)

涉及的因素太多(互联网连接类型,防火墙/路由器规则,代理等)。最可靠的方法是简单地不尝试确定当前状态,只是尝试所需的操作(执行实际的HTTP请求,或SMTP / POP3 / IMAP操作等),并准备好对任何错误做出反应。您可以检测与连接相关的错误,并在重试之前提示用户检查其Internet连接。

答案 1 :(得分:1)

使用TIdHTTP.Get并尝试下载http://google.com

当然,这取决于连接到互联网的定义。有时Web流量(端口80)在其他端口打开时被阻止。幸运的是,现在大多数人实际上都被允许浏览网页,因为它还为他们的日常活动提供帮助。谷歌可能是防火墙最少的网站之一,拥有最快的正常运行时间之一。

但是,这仍然是一个幸运的猜测。根据您的需要,您可以尝试一下,看看它是否有效。如果没有,显然计算机没有正确连接,即使它可以到达谷歌。 :)

[编辑]

由于讨论。 InternetCheckConnection也是一个不错的选择,但它也通过ping实际服务器来检查连接。 MSDN says

  

使用InternetCheckConnection功能检查连接   互联网。它尝试ping URL指定的服务器   传递给函数。如果是FLAG_ICC_FORCE_CONNECTION标志   设置并且URL为NULL,函数检查是否有   在服务器数据库中输入最近的服务器。如果存在,   函数ping服务器

但由于此函数使用ping,因此它可能比实际检索内容快一点。另一方面,许多防火墙主动拒绝ping。