【问题标题】:Opening socket to deliver email打开套接字以传递电子邮件
【发布时间】:2014-02-26 05:24:24
【问题描述】:

我正在做一个概念验证工作,它应该是一个自定义的 SMTP 服务器实现。我现在的问题是:

我应该打开到哪个主机的连接,MX 记录中的一个还是直接到 root.tld?

我使用fakeSMTP 作为基础,我希望进一步扩展它。通过实际发送电子邮件。

【问题讨论】:

  • SMTP 服务器在监听什么?
  • 默认,端口 25。它工作正常,如描述中所述。 (我的无线手机可以将消息传递给 fakeSMTP )
  • 那么您已经知道自己问题的答案了。
  • 基本上我(认为)我是,但在消息传递中我缺乏关于谁做什么的知识。我有点想念 MDA 之间的联系。
  • 我不知道你到底在问我们什么。

标签: php sockets smtp


【解决方案1】:

我正在做概念验证工作

那么至少应该对协议有基本的了解。所有互联网协议都有据可查。对于 SMTP,您可能应该以 RFC 2821 开头

【讨论】:

    【解决方案2】:

    要使用自定义实现的 SMTP 服务器或其他一些外来技术发送电子邮件,应该在他的代码中执行以下操作:

    1. 查找电子邮件主机的 MX 记录(“@”符号后的所有内容)
    2. 根据优先级对它们进行排序(仍然与 RFC 兼容)
    3. 循环 MX 并成功连接 break 迭代。
    4. 在打开的连接上写入连接的完整信息。写法应该与使用 telnet 发送电子邮件时相同,但应省略 AUTH 命令。

    这实际上解决了我的问题。作为一个与我在问题中提出的完全匹配的简短答案:

    您应该查找电子邮件提供商的 MX 记录,并在端口 25 上打开与 in 的连接并写入消息。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-12-25
      • 2018-03-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-05-20
      • 1970-01-01
      • 2018-09-19
      相关资源
      最近更新 更多