2014-08-28 83 views
4

我不希望用户必须执行或确认任何操作,因为这会破坏整体思路。换句话说,mailto是不可能的。从Chrome扩展中发送电子邮件

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

我感觉这将是不可能的。

编辑:我知道有一个chrome.sockets.tcp API可用,任何想法如何?

为什么所有的downvotes?这不像我试图问一个问题,你们都必须讨厌,我只是有点想这个信息,所以我可以用它在一个扩展...

解决方案:非常非常辛苦,不值得麻烦(看最佳答案)

+6

这是不可能的。 – Ryan 2014-08-28 19:54:58

+0

可爱的评论...你能提供任何证据或备份吗? – warspyking 2014-08-28 19:56:32

+0

什么是downvote ...我想我问了一个写得很好的问题D: – warspyking 2014-08-28 19:57:27

回答

9

既然不能想到的这个问题上密切的原因,这里有一个答案..

要发送一封电子邮件,一个程序需要通过TCP连接到SMTP服务器和谈话根据SMTP protocol

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

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

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

  2. 无法直接从Chrome 分机发送电子邮件。

    尽管Web API提供的增强功能,但它们仍不能为您提供“与服务器通话”的机会。

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

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

    请注意单词“原始访问”。你将不得不从JavaScript开始实现你自己的邮件客户端。 This可能是一个起点。

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

  4. 任何事情都可以用Native Messaging host

    作为本机应用程序,您可以从本地主机应用程序执行任何操作。 Chrome扩展程序/应用程序将可以用必要的数据调用它。

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

    而您的邮件主机仍然需要实现您自己的SMTP客户端,尽管您有更多的可用库供您选择。

如需额外阅读,请点击这里Apps vs Extensions指南。

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

+0

+1对于问题的一个很好的答案。但是值得重申的是,由于无论你做什么,你都要与服务器通信,所以使用ajax与服务器交谈会更简单,无论是你自己的还是第三方的电子邮件API服务,如Mandrill,建议通过问题的评论之一。 – RichieHindle 2014-08-29 06:13:55

+0

得到足够的代表现在投票:D – warspyking 2014-08-30 00:16:25

+0

嗯,这个答案似乎悲观的性质。我认为OP对“chrome.identity.sendEmail”或类似的东西感到疑惑......其中这样的功能将使用AJAX向Google云服务器发送消息,并且该云服务器将处理该电子邮件... – 2018-02-12 06:21:43