我不希望用户必须执行或确认任何操作,因为它会破坏一般的想法。换句话说,mailto是不可能的。
是否可以通过JavaScript从Chrome扩展程序发送客户端电子邮件,而不会破坏用户体验或添加任何JavaScript扩展程序?如果是这样的话?
我觉得这是不可能的。
编辑:我已经了解到有一个可用的chrome.sockets.tcp API,不知道怎么做?
为什么所有的投票?它不像我试图提出一个你一定都讨厌的问题,我只是想要这些信息所以我可以在扩展中使用它...
解决方案:非常非常努力,不值得麻烦(参见最佳答案)
答案 0 :(得分:12)
由于我无法想到这个问题的接近原因,这里有一个答案..
要发送电子邮件,程序需要通过TCP连接到SMTP服务器并根据SMTP protocol与之通信。
无法使用JavaScript / HTML5 API直接发送电子邮件。
浏览器不公开直接与TCP套接字通信的功能。
虽然您原则上可以启动与任何端口的连接,但浏览器将“进行通话”并且不会“说”SMTP。它可以做HTTP,它可以做WebSockets,但不能做你想要的协议。
无法直接从Chrome 扩展程序发送电子邮件。
虽然Web API提供了Chrome extension APIs扩充功能,但它们仍然没有为您提供与服务器“交谈”的机会。
直接从Chrome 应用发送电子邮件是可能的,但并不容易。
Chrome Apps APIs与扩展不同,但更重要的是,它们包括通过chrome.sockets.tcp
API对TCP套接字的原始访问。
请注意“原始访问”字样。您必须在JavaScript中从头开始实现自己的邮件客户端。 This可能是一个起点。
根据您希望实现的目标,Chrome应用可以是一种可接受的解决方案。或者,如果您需要扩展和应用API,则可以创建它们并在它们之间传递消息。
使用Native Messaging host可以做任何事情。
基本上是本机应用程序,您可以从本机主机应用程序执行任何操作。 Chrome扩展程序/应用程序随后可以使用必要的数据进行调用。
但是,如果您决定发布扩展程序,这将限制您的部署选项;您将不得不担心可移植性,并且本机主机无法上传到Web Store;你需要一个单独的安装程序。
您的邮件主机仍然需要实现自己的SMTP客户端,尽管您可以选择更广泛的就绪库。
如需额外阅读,请参阅Apps vs Extensions指南。
请注意,任何后续问题都可能超出原始问题的范围。