从Chrome扩展程序发送电子邮件

时间:2014-08-28 19:53:59

标签: javascript email google-chrome-extension

我不希望用户必须执行或确认任何操作,因为它会破坏一般的想法。换句话说,mailto是不可能的。

是否可以通过JavaScript从Chrome扩展程序发送客户端电子邮件,而不会破坏用户体验或添加任何JavaScript扩展程序?如果是这样的话?

我觉得这是不可能的。

编辑:我已经了解到有一个可用的chrome.sockets.tcp API,不知道怎么做?

为什么所有的投票?它不像我试图提出一个你一定都讨厌的问题,我只是想要这些信息所以我可以在扩展中使用它...

解决方案:非常非常努力,不值得麻烦(参见最佳答案)

1 个答案:

答案 0 :(得分:12)

由于我无法想到这个问题的接近原因,这里有一个答案..

要发送电子邮件,程序需要通过TCP连接到SMTP服务器并根据SMTP protocol与之通信。

  1. 无法使用JavaScript / HTML5 API直接发送电子邮件。

    浏览器不公开直接与TCP套接字通信的功能。

    虽然您原则上可以启动与任何端口的连接,但浏览器将“进行通话”并且不会“说”SMTP。它可以做HTTP,它可以做WebSockets,但不能做你想要的协议。

  2. 无法直接从Chrome 扩展程序发送电子邮件

    虽然Web API提供了Chrome extension APIs扩充功能,但它们仍然没有为您提供与服务器“交谈”的机会。

  3. 直接从Chrome 应用发送电子邮件是可能的,但并不容易。

    Chrome Apps APIs与扩展不同,但更重要的是,它们包括通过chrome.sockets.tcp API对TCP套接字的原始访问。

    请注意“原始访问”字样。您必须在JavaScript中从头开始实现自己的邮件客户端。 This可能是一个起点。

    根据您希望实现的目标,Chrome应用可以是一种可接受的解决方案。或者,如果您需要扩展和应用API,则可以创建它们并在它们之间传递消息。

  4. 使用Native Messaging host可以做任何事情。

    基本上是本机应用程序,您可以从本机主机应用程序执行任何操作。 Chrome扩展程序/应用程序随后可以使用必要的数据进行调用。

    但是,如果您决定发布扩展程序,这将限制您的部署选项;您将不得不担心可移植性,并且本机主机无法上传到Web Store;你需要一个单独的安装程序。

    您的邮件主机仍然需要实现自己的SMTP客户端,尽管您可以选择更广泛的就绪库。

  5. 如需额外阅读,请参阅Apps vs Extensions指南。

    请注意,任何后续问题都可能超出原始问题的范围。