如何使用JavaScript通过电子邮件将HTML表单数据发送到电子邮件ID,而不使用服务器端语言,不使用电子邮件客户端安全?

问题描述 投票:0回答:3

如何使用 JavaScript 通过电子邮件将 HTML 表单数据发送到电子邮件 ID,而不使用服务器端语言,也不使用电子邮件客户端?我不希望任何电子邮件客户端在单击提交时弹出。

javascript html api security email
3个回答
0
投票

通过 JavaScript 发送电子邮件非常简单:

 <textarea id="Body">
     Mail Content
 </textarea>
 <button onclick="sendMail();">Send</button>

发送邮件功能:

function sendMail() {
         var link = "mailto:[email protected]"
         + "[email protected]"
         + "&subject=" + escape("This is my subject")
         + "&body=" + escape(document.getElementById('Body').value)
     ;

     window.location.href = link;
 }

您可以在提交时调用

SendMail()
函数。 希望这对您有帮助。


0
投票

您的要求基本上是说您想直接访问 smtp 服务器,并且邮件应该从那里发送。

这意味着 Javascript 应该支持一种将数据发送到 smtp 服务器的方法。

与 smtp 服务器通信的默认方式是通过 TCP/IP(您可以在 smtp 服务器上使用 telnet,通常在端口 25 上)。

由于 Javascript 不直接支持 TCP/IP,因此无法直接从 Javascript 执行此操作。

这并不意味着

  1. 您无法使用提供休息界面的电子邮件服务
  2. 基于 REST 编写自己的后端,将其中继到 SMTP 服务器
  3. 有一个后端充当传入休息的代理,并将其转换为 tcp/ip 请求并将其发送到相应的服务器和端口

以上三种方法似乎是我能想到的从 Javascript 发送邮件的唯一方法。

编辑:似乎有一个 TCPSocket https://developer.mozilla.org/en-US/docs/Web/API/TCPSocket 但它没有得到广泛支持。

您可能还想研究一下 flash,但我不知道它会被广泛支持多久。


0
投票

我们是故意不允许你这样做的。如果可以的话,每个人的浏览器都会变成地狱般的垃圾邮件滥用机器。

在网页上,您只能选择客户端邮件,让用户确认他们正在发送的内容(并失去一定比例的无法发送邮件的响应者)或可通过网络访问的服务器-端邮件转发器(第三方服务或您自己的服务器,在这种情况下您必须自己解决安全问题)。

© www.soinside.com 2019 - 2024. All rights reserved.