使用Websockets构建简单的SMTP客户端

时间:2014-01-23 13:54:21

标签: javascript http websocket smtp rfc

出于好奇和我的一些实验,我想知道在浏览器上构建STMP客户端需要什么。几年前,这几乎是不可能的,但现在几乎所有的浏览器似乎都实现了网络套接字,所以我只能假设这应该是可能的。我想知道一些关于如何实现这一点的确切细节,而不需要深入研究the RFC for SMTP (RFC-2821)并让自己更加困惑。多年来,我学会了如何使用HTTP协议来嗅探HTTP数据包并尝试从Web浏览器发送的内容和我的服务器期望的内容中了解协议,我想知道我是否可以使用相同的技术来揭开神秘面纱的神秘面纱。 SMTP协议。我还记得大约10年前,我曾经使用免费公开的s​​mtp中继服务器通过telnet从windows命令提示符发送电子邮件,我相信我仍然可以记住一些命令。我如何将所有这些结合在一起......用javascript说。

我很高兴知道是否有人尝试过这一点并愿意分享一些相关知识。

3 个答案:

答案 0 :(得分:3)

您需要在WebSockets和普通TCP套接字之间建立协议桥,例如websockify免责声明:我创建了websockify)。 websockify项目包括一个简单的telnet(wstelnet.html)和irc(wsirc.html)客户端(来自同一时代,形式类似于SMTP)。您应该能够修改其中一个以完成您的需要。例如,如果您在您的SMTP服务器上指向websockify,然后加载wstelnet.html并连接到websockify实例,那么您可以manually interact with the SMTP server(就像您10年前所做的那样)。从那个起点开始,您可以开始自动化部分交互。

答案 1 :(得分:1)

你不能用WebSockets做到这一点,因为它们不是普通的套接字,而是存在于现有的HTTP连接中,有自己的框架等。出于安全原因,你的浏览器也可能禁止从浏览器内部访问SMTP端口。 / p>

有关普通TCP连接和WebSockets之间的区别,请参阅What's the main difference between bidirectional and directional sockets?

答案 2 :(得分:0)

Mailsac有一个SMTP到网络套接字API documented here,虽然付费。消息已经解析为JSON,但原始原始数据被缓冲并包含在JSON中。

披露:我在Mailsac工作。

相关问题