是否有用PHP或Go编写的SMTP服务器?

Xeo*_*oss 6 php email smtp go

我不是指SMTP/IMAP客户端,我的意思是一个可以接收和发送电子邮件的工作SMTP服务器.

有很多部分PHPGo SMTP服务器的例子只监听SMTP连接 - 是不是有任何显示如何发送邮件?

我真的很想学习简单邮件传输协议的后半部分.我知道有很多不良服务器与标准不同 - 但我想了解整个协议从开始到结束是如何实现的.

Bur*_*lid 14

我想你误解了SMTP应该如何工作.这是一个简化版本:

  1. 邮件用户代理(MUA)通过将邮件发送到邮件提交代理(MSA)来对邮件进行排队.

  2. MSA通过SMTP连接到邮件传输代理("smtp服务器").

  3. 然后,MTA使用DNS查找收件人域的MX记录.然后它将收件人的MX服务器作为SMTP客户端联系.

  4. MX服务器接受信封; 然后它将它转发给邮件传递代理(MDA).

  5. 然后,MDA将信封放入某个消息存储库中,其中一些IMAP或POP3服务器读取消息.然后MUA连接到这些服务器以检索消息.

整个过程使用三个主要命令.MAIL,RCPTDATA.

  • MAIL =信封信息,退回地址等
  • RCTP =收件人.
  • DATA =有效载荷.

SMTP服务器响应 - 实际上非常像HTTP,带有错误代码,并且基于此,MTA知道如何处理信封(它反弹,所以发送适当的回复等)

在这个过程中,没有"检索电子邮件"(忽略ETRN一点); 因为SMTP纯粹是用于电子邮件传输而不是检索.