3 回答

TA贡献1780条经验 获得超4个赞
我认为您误解了SMTP应该如何工作。这是一个简化的版本:
邮件用户代理(MUA)通过将邮件发送到邮件提交代理(MSA)来排队等待传递的邮件。
MSA通过SMTP连接到邮件传输代理(“ smtp服务器”)。
然后,MTA使用DNS查找收件人域的MX记录。然后,它将联系收件人的MX服务器作为SMTP客户端。
MX服务器接受信封。然后将其转发到邮件传递代理(MDA)。
然后,MDA将信封放在某些邮件存储中,某些IMAP或POP3服务器在其中读取邮件。然后,MUA连接到这些服务器以检索消息。
整个过程使用三个主要命令。MAIL
,RCPT
和DATA
。
MAIL
=信封信息,退回地址等。RCTP
=收件人。DATA
=有效负载。
SMTP服务器响应-实际上类似于HTTP,带有错误代码,并基于此错误,MTA知道如何处理信封(回弹,因此发送适当的答复等)。
在此过程中,没有诸如“检索电子邮件”之类的东西(略ETRN
过)。因为SMTP纯粹是用于电子邮件传输而不是检索。

TA贡献1802条经验 获得超5个赞
没有SMTP的“后半部分”,只有协议。如果您的MUA直接通过TCP与邮件服务器进行交互(而不是使用诸如大多数Unix上的/ usr / bin / sendmail二进制文件之类的帮助程序),则它将使用SMTP协议。在传递邮件时,MTA使用相同的协议与其他MTA进行通信。根据情况,它可能会使用更多的可用动词集。
查看MTA的PHP或Go实现的代码将向您展示一个人/团队如何实现SMTP协议。
- 3 回答
- 0 关注
- 305 浏览
添加回答
举报