如何使用 JavaScript 通过电子邮件将 HTML 表单数据发送到电子邮件 ID,而不使用服务器端语言,也不使用电子邮件客户端?我不希望任何电子邮件客户端在单击提交时弹出。
通过 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()
函数。
希望这对您有帮助。
您的要求基本上是说您想直接访问 smtp 服务器,并且邮件应该从那里发送。
这意味着 Javascript 应该支持一种将数据发送到 smtp 服务器的方法。
与 smtp 服务器通信的默认方式是通过 TCP/IP(您可以在 smtp 服务器上使用 telnet,通常在端口 25 上)。
由于 Javascript 不直接支持 TCP/IP,因此无法直接从 Javascript 执行此操作。
这并不意味着
以上三种方法似乎是我能想到的从 Javascript 发送邮件的唯一方法。
编辑:似乎有一个 TCPSocket https://developer.mozilla.org/en-US/docs/Web/API/TCPSocket 但它没有得到广泛支持。
您可能还想研究一下 flash,但我不知道它会被广泛支持多久。
我们是故意不允许你这样做的。如果可以的话,每个人的浏览器都会变成地狱般的垃圾邮件滥用机器。
在网页上,您只能选择客户端邮件,让用户确认他们正在发送的内容(并失去一定比例的无法发送邮件的响应者)或可通过网络访问的服务器-端邮件转发器(第三方服务或您自己的服务器,在这种情况下您必须自己解决安全问题)。