Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 从Chrome扩展发送电子邮件_Javascript_Email_Google Chrome Extension - Fatal编程技术网

Javascript 从Chrome扩展发送电子邮件

Javascript 从Chrome扩展发送电子邮件,javascript,email,google-chrome-extension,Javascript,Email,Google Chrome Extension,我不希望用户必须执行或确认任何操作,因为这会破坏总体思路。换句话说,mailto是不可能的 是否可以在不中断用户体验或添加任何JavaScript扩展的情况下,通过JavaScript从Chrome扩展向客户端发送电子邮件?如果是,怎么做 我觉得这是不可能的 我知道有一个chrome.sockets.tcp API可以使用,知道怎么用吗?因为我想不出这个问题的确切原因,下面是一个答案 要发送电子邮件,程序需要通过TCP连接到SMTP服务器,并根据协议与之通信 无法使用JavaScript/HTM

我不希望用户必须执行或确认任何操作,因为这会破坏总体思路。换句话说,mailto是不可能的

是否可以在不中断用户体验或添加任何JavaScript扩展的情况下,通过JavaScript从Chrome扩展向客户端发送电子邮件?如果是,怎么做

我觉得这是不可能的

我知道有一个chrome.sockets.tcp API可以使用,知道怎么用吗?

因为我想不出这个问题的确切原因,下面是一个答案

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

  • 无法使用JavaScript/HTML5API直接发送电子邮件

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

    虽然您原则上可以启动到任何端口的连接,但浏览器将“说话”,而不会“说话”。它可以使用HTTP,也可以使用WebSocket,但不能使用您想要的协议

  • 不可能直接从Chrome分机发送电子邮件

    虽然web API提供了增强功能,但它们仍然不能为您提供与服务器“对话”的机会

  • 直接从Chrome应用程序发送电子邮件是可能的,但并不容易

    与扩展不同,但更重要的是,它们包括对TCP套接字的原始访问,通过

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

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

  • 任何事都有可能,只要有一颗心

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

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

    您的消息传递主机仍然需要实现您自己的SMTP客户端,尽管您有更广泛的现成库可供选择

  • 使用外部API,任何事情都是可能的,但保护通信安全将是一项挑战

    如果有一个网站,你的扩展可以交谈,可以发送电子邮件代表你,你可以让你的扩展触发这样一个API

    然而,实际上不可能将特定于扩展的秘密隐藏到扩展中以限制API的使用

    您可以使用一些凭据让用户登录到这样的服务,然后将这些特定于用户的凭据存储在已安装的实例中,例如OAuth令牌。这基本上将问题转移到您必须控制(或与之达成协议)的web服务上

  • 额外阅读,这里的指南


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

    这是不可能的。@warspyking:证明某些事情是不可能的是很难做到的。你唯一的证明就是没有答案,无法直接用javascript发送电子邮件@minitech是对的。但是,您可以使用Ajax将请求(以静默方式)发送到服务器,然后服务器可以发送电子邮件。@warspyking Downvote,因为您的问题没有显示任何研究工作。允许JavaScript执行此操作的浏览器称为“垃圾邮件问题”。一个不允许JavaScript这样做的浏览器称为“可利用的”。这算是证据吗?+1是这个问题的好答案。但同样值得重复的是,因为无论您做什么,您都要与服务器交谈,所以使用ajax与服务器交谈会更简单,无论是您自己的服务器还是第三方电子邮件API服务(如Mandrill),正如问题的一条评论所建议的那样。嗯,这个答案在本质上似乎是悲观的。我想OP是想知道chrome.identity.sendEmail或类似的东西……这样的功能将使用AJAX向Google云服务器发送消息,而云服务器将处理电子邮件。。。