打开套接字以发送电子邮件

时间:2014-02-02 19:40:13

标签: php sockets smtp

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

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

我使用fakeSMTP作为基础,我希望将其扩展一点。通过实际发送电子邮件消息。

2 个答案:

答案 0 :(得分:1)

  

我正在做概念证明工作

那么至少应该对协议有一个基本的了解。所有互联网协议都有详细记录。对于SMTP,您应该从RFC 2821

开始

答案 1 :(得分:0)

要发送包含自定义SMTP服务器实施或其他外星技术的电子邮件,应在其代码中执行以下操作:

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

    这实际上解决了我的问题。作为一个简短的答案,完全符合我在问题中提出的要求:

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