繁体   English   中英

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

[英]How to send HTML form data by email to an email ID by using JavaScript, without using server-side language, without using email client securely?

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

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

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

发送邮件功能:

function sendMail() {
         var link = "mailto:me@example.com"
         + "?cc=myCCaddress@example.com"
         + "&subject=" + escape("This is my subject")
         + "&body=" + escape(document.getElementById('Body').value)
     ;

     window.location.href = link;
 }

您可以在提交时调用SendMail()函数。 希望这对您有所帮助。

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

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

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

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

这并不意味着

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

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

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

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

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

从网页中,您只能在客户端邮件之间进行选择,让用户确认他们正在发送的内容(并失去一部分无法发送邮件的受访者),或者可以访问网络的服务器 -侧邮件转发器(第三方服务或您自己的服务器,在这种情况下,您必须自己解决安全问题)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM