如何编写没有服务器的电子邮件客户端?

时间:2011-05-11 14:03:07

标签: email websocket

我想制作自己的电子邮件客户端。可以替代Gmail,或只是自己的电子邮件服务。

我可以创建自己的电子邮件服务没有服务器吗?

有没有办法用websockets做到这一点?

4 个答案:

答案 0 :(得分:2)

您需要某种服务器监听电子邮件连接,才能接收邮件。

所以是的,您需要某种服务(必须在服务器上运行)才能收听电子邮件。您可能需要先了解SMTP电子邮件连接的工作原理

http://en.wikipedia.org/wiki/Simple_Mail_Transfer_Protocol

这应该向您显示该过程,每个邮件服务器都会通过发送和接收电子邮件。

这里也要注意服务器的定义,你的监听服务需要一直运行在有互联网连接的东西上。 (简单地说)

添加,你的问题有点失误。提供的答案应该让您朝着正确的方向前进。

答案 1 :(得分:1)

您可以在没有电子邮件服务器的情况下制作电子邮件客户端(无论是在线)。此电子邮件客户端将请求邮件服务器显示邮件。

但实际上,当用户登录界面时请求外部邮件服务器会非常慢。您必须在自己的服务器中缓存电子邮件数据并定期执行更新。这就是桌面客户端的功能。他们每隔几分钟检查邮件并将邮件存储在你的硬盘上,这样你就可以随时查询。

如果您提供Web电子邮件客户端,则必须在服务器端执行相同操作,至少获取所有标头。最好是获得全部内容。

当你这样做了......无论如何你已经拥有了近乎一个邮件服务器......

答案 2 :(得分:0)

最终电子邮件会通过套接字传递,就像其他所有内容一样,因此,对您的问题的简短回答是肯定的。

答案越长,您必须实施电子邮件协议的客户端部分,不包括专有邮件协议,这意味着IMAPPOPSMTP。不过,您最终需要一个邮件服务器来测试您的客户端。

我希望这足以让你在这次尝试中劝阻你。那里有很多电子邮件客户端:你为什么还想要另一个呢?

答案 3 :(得分:0)

取决于您的应用程序应该在哪里工作。您选择的标签并不真正适合。

如果您创建Java应用程序,这没问题。

如果要创建像gmail这样的Web客户端,则可能性有限,因为无法创建正常的套接字连接,这是实现POP / IMAP / SMTP协议所必需的。从JavaScript开始,您只能打开依赖于HTTP协议的连接,无论它是XMLHttpRequest还是WebSocket连接。

注意:您还可以以applet的形式在网站中嵌入Java应用程序。但说实话,applet很老,我不会在新的网络应用程序中使用它们。