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

我不是说SMTP / IMAP客户端,而是要可以同时收发电子邮件的SMTP服务器。

有很多只监听SMTP连接的部分PHPGo SMTP服务器的示例-那里没有显示如何发送邮件的示例吗?

我对学习简单邮件传输协议的后半部分真的很感兴趣。我知道有很多与标准服务器不同的不良服务器-但我想学习如何从头到尾实现整个协议。


喵喔喔
浏览 268回答 3
3回答

Helenr

我认为您误解了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纯粹是用于电子邮件传输而不是检索。

慕森王

我发现了一个用PHP编写的完整SMTP服务器-甚至包括一个讨厌的开放中继。$ sudo php php-smtp.php [ip-address] [port]

慕后森

没有SMTP的“后半部分”,只有协议。如果您的MUA直接通过TCP与邮件服务器进行交互(而不是使用诸如大多数Unix上的/ usr / bin / sendmail二进制文件之类的帮助程序),则它将使用SMTP协议。在传递邮件时,MTA使用相同的协议与其他MTA进行通信。根据情况,它可能会使用更多的可用动词集。查看MTA的PHP或Go实现的代码将向您展示一个人/团队如何实现SMTP协议。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go