我不是指SMTP/IMAP客户端,我的意思是一个可以接收和发送电子邮件的工作SMTP服务器.
有很多部分PHP和Go SMTP服务器的例子只监听SMTP连接 - 是不是有任何显示如何发送邮件?
我真的很想学习简单邮件传输协议的后半部分.我知道有很多不良服务器与标准不同 - 但我想了解整个协议从开始到结束是如何实现的.
Bur*_*lid 14
我想你误解了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纯粹是用于电子邮件传输而不是检索.