【问题标题】:setup POP3server for the internet为互联网设置 POP3server
【发布时间】:2011-01-02 06:11:09
【问题描述】:

我使用 indy 组件套件(我认为是 10.5.2 版)在 delphi 中构建了几个应用程序,它们都在工作。我刚刚完成了 POP3server 的设置,它可以在本地运行。我可以在那里看到本地发送的邮件。我一直使用“localhost”作为我的主机名。但是,我想毕业到更高级别的功能。我希望能够接收来自 Internet 的电子邮件,例如来自 msn、gmail、yahoo 的电子邮件……问题是我不知道该怎么做。我应该使用哪个地址来执行此操作?到目前为止,“myhouse@localhost”一直在工作,但只是在内部;那里好像收不到外部邮件。可以接收这样的邮件吗?谢谢。

【问题讨论】:

  • 你用的是VB还是Delphi?如果您使用的是 VB,我假设您的意思是 VB.NET?
  • 您正在尝试使用 gmail 或其他方式向“myhouse@localhost”发送邮件?您需要的是一个域(因此您的电子邮件将是 blabla@yourdomain.com)、正确的 dns 设置和转发到您的邮件服务器的端口。
  • 是的。 “本地主机”主机名我输入到 pop3 客户端,如 Outlook
  • 从上面继续...是的。 “本地主机”是我输入到诸如 Outlook 之类的 pop3 客户端的主机名,我能够通过服务器阅读电子邮件。我也有一个 SMTPserver 设置,我也可以通过它发送电子邮件以及使用 Outlook。我正确地说“localhost”是我的域?我见过虚拟 pop3 服务器以类似的方式接受来自互联网的邮件。
  • localhost 始终设置为指向 127.0.0.1,这是为标识本地计算机而保留的 IP。 localhost 是主机名。您不连接到域,您需要连接到主机,DNS 名称具有域部分和主机。

标签: delphi email delphi-2010 indy pop3


【解决方案1】:

您需要注册一个域,然后设置其 DNS 记录(特别是其 MX 记录)以指向您的服务器计算机。这样,当任何发送服务发往任何“@yourdomain”地址的电子邮件时,它将被路由到您的服务器机器(需要运行 SMTP 服务器来接收电子邮件 - POP3 用于从您的邮箱下载电子邮件,而不是用于将电子邮件放入其中)。如果您的服务器没有静态 IP,那么您需要使用 DynDNS 之类的服务来为您管理 DNS 记录,以便他们可以在动态 IP 发生变化时对其进行说明。

【讨论】:

    【解决方案2】:

    “互联网”不使用 POP3 发送和接收电子邮件,它使用 SMTP。以下是电子邮件从发送计算机“流向”接收计算机的方式:

    服务器需要发送电子邮件到地址:myhome@localhost。它所做的第一件事是隔离服务器名称,即“@”之后的部分。接下来,它使用 DNS 来查找应该接收给定域的电子邮件的计算机的 SERVER IP。 DNS为此包含一个特殊记录,称为“MX”记录。您可以使用命令行工具,如 Linux 上的 dig 或 Windows 上的 nslookup 来查找此地址,或者您可以使用类似 http://www.mxtoolbox.com/ 的在线工具(谷歌找到了这个站点,我想还有很多其他的!)。

    如果您尝试查找“localhost”域的 MX 记录,您显然会发现这是不可能的,因为它不是一个完全限定的名称。你首先需要给自己一个域名,这样你才能注册一个MX记录!

    接收电子邮件所需的东西

    1. 需要一个“真实的”IP 地址。本地网络之外的服务器需要联系您的服务器,他们显然需要一种方法来做到这一点。确保沿途没有路由器阻止 SMTP 端口。
    2. 您需要注册一个域名,添加一条 MX 记录并将其指向您的“真实”IP 地址。
    3. 需要在您的机器上运行 SMTP 服务器软件。您可以使用 Indy 组件编写一个。

    发送电子邮件所需的东西

    理论上,使用 SMTP 发送电子邮件是容易的部分。您只需使用 SMTP 联系负责的服务器并发送电子邮件,这就是协议的工作方式:世界上任何一台计算机都可以向任何 SMTP 服务器发送电子邮件。

    实际上,发送电子邮件是您必须做的最困难的事情,主要是因为外国 SMTP 服务器不信任您(听说过垃圾邮件吗?)。以下是您可能需要做的一些事情,以便外国 SMTP 服务器接受来自您的电子邮件。没有明确的列表,因为协议本身不包含明确的身份验证机制,因此每个大型 SMTP 服务器都使用它自己的启发式方法来决定是否接受来自您的电子邮件。你会发现 yahoo 特别有趣!

    1. 您需要为用于发送电子邮件的 IP 设置反向 DNS。
    2. 您需要从 DNS 中列出的 SMTP 服务器之一作为您的 MX 服务器发送。
    3. 您的 DNS 记录需要有长 TTL(这排除了动态 DNS 服务)
    4. 还有很多其他事情...

    人们通常做什么?

    电子邮件很难,您自己的服务器可用的完整 SMTP 服务器数量惊人地少:Exchange、Notes、Postfix、QMail、Sendmail。众所周知,它们都难以配置。大多数人会使用托管邮件服务,有些人会使用 ISP 提供的 SMTP 服务,而很少有人会安装上述服务之一。

    如果您真的想编写自己的 SMTP 服务器,请继续,但您可能需要先安装一个现成的服务器,以获得一些电子邮件和 DNS 经验。 Linux 安装起来很便宜,也可能有助于开发(你不想向你的免费雅虎地址发送太多糟糕的电子邮件,你可能会被列入黑名单!)

    【讨论】:

    • 有更简单的邮件服务器可用,最著名的是作为 Windows 免费服务器,有 hMailServer (hmailserver.com) 和 Mercury/32 (pmail.com/m32_472.htm),如果您需要一个非常小的服务器,请查看到邮局 (glenn.delahoy.com/software/index.shtml)。还有其他商业服务器(即 MailEnable)可以提供免费的有限版本。通常人们不会设置自己的邮件服务器,因为它需要一个域、一个 DNS 条目、一个 24x7 可用服务器和打开的端口(一些 ISP 阻止例如 25 个入站...)
    • SMTP 可以直接将邮件发送到主机。请参阅 RFC 5321 2.3.5 关于有效的“域名”名称。它可以是 MX、A、AAAA 或指向 MX、A 或 AAAA 记录的 CNAME。某人@localhost 的地址 有效的。当然 MX 记录更好,因为它们隐藏了真实的邮件服务器主机名并允许单个域有多个服务器。
    • someone@localhost 可能是有效的电子邮件地址,但不能使用 DNS 为该电子邮件地址路由电子邮件,因为“localhost”不是完全限定的域名:MX、A、AAAA 和CNAME 都是 DNS 记录。没有正确的域名如何查询 DNS?
    • localhost 通常在您的主机文件中。您也应该询问它以进行名称解析。那里的条目也是有效的主机名。
    【解决方案3】:

    POP3 是一种从邮箱读取电子邮件的协议。 TidPOP3Server 组件实现了一个 POP3 服务器(并且 AFAIK 它没有要设置的主机属性......),而 TidPOP3 实现了一个 POP3 客户端。要从 GMail 或任何 POP3 服务器读取邮件,您需要一个 TidPOP3 组件。要设置的主机名是服务指示您使用的 DNS 名称(即 pop3.mydomain.com)。

    【讨论】:

      猜你喜欢
      • 2017-04-23
      • 2020-08-05
      • 1970-01-01
      • 2012-06-08
      • 2022-11-03
      • 2019-08-17
      • 1970-01-01
      • 1970-01-01
      • 2014-03-13
      相关资源
      最近更新 更多