【发布时间】:2011-01-23 14:19:06
【问题描述】:
我有一个反馈 HTML 表单,我需要将其结果发送到一个电子邮件地址。我如何在 JavaScript 中做到这一点?
【问题讨论】:
标签: javascript html email forms
我有一个反馈 HTML 表单,我需要将其结果发送到一个电子邮件地址。我如何在 JavaScript 中做到这一点?
【问题讨论】:
标签: javascript html email forms
您唯一的选择是将其作为常规表单提交,然后在服务器端发送。
【讨论】:
不可能,仅使用 javascript,但在服务器端脚本的帮助下,您可以。
请看php邮件功能here
【讨论】:
你有两个选择:
1) 使用 mailto 链接。尽管您可以使用 Javascript 来“单击”mailto 链接,但实际上并不需要 Javascript。这将导致用户的电子邮件客户端打开一个预先填充了收件人电子邮件地址的新电子邮件。 mailto links mailto 链接不可靠的原因有很多(请参阅下面的 cmets)。不推荐使用它们。
2) 将表单提交回服务器,然后从服务器发送电子邮件。无论服务器端代码是什么(php、c# 等)都应该能够发送电子邮件。这样您就可以保证电子邮件已发送。
您不能从浏览器静默发送电子邮件。它必须在用户帮助下或在服务器上发生。
【讨论】:
【讨论】:
这是不可能的 :) 但是,您可以使用由 python(django)、php、asp.net 等编写的 jQuery 和后端应用程序。
简单的 jQuery 脚本:
$('#button').click(function(){
$.post('backend.php',
{message:$('#message').val(),
name: $('#name').val(),
email:$('#email').val()},
function(data) {
$('.result').html(data);
});
});
和 PHP 脚本:
<?php
if($_POST['message'])
{
$body = "Name: ".$_POST['name'];
$body .= "<br>Email: ".$_POST['email'];
$body .= "<br>Message: ".$_POST['message']
if(mail("yourmail@mail.com","Subjects",$body))
echo 'true';
else echo 'false;';
}
?>
它很简单,没有安全修复。
【讨论】:
您无法使用 客户端 javascript 发送邮件。将表单提交到 PHP/JSP/ASP 等服务器端脚本,然后从该脚本发送邮件。
【讨论】:
你不能。您需要使用某种背景技术,例如 python、ruby、coldfusion、php 或 ASP 才能将其发送到您的电子邮件。
网上有一些免费服务可以让你使用他们自己的资源来做这件事,但如果你处理的是安全信息,你最好使用自己的资源。
这里有一个free PHP service,可以让你做类似的事情,但请记住,这种服务通常是不可靠的。
【讨论】:
你不能用纯 javascript 做到这一点,你可能也想使用 ajax 但在幕后应该有一个 server-side language 来发送电子邮件。
【讨论】:
您可以尝试这样做的一种方法是拥有一个
<form action="mailto:example@example.com">
提交时会尝试将表单通过电子邮件发送到给定的电子邮件地址,这是一个非常讨厌的解决方案,因为它依赖于具有正确配置的邮件客户端的客户端。此外,您无法控制电子邮件的呈现方式。 请参阅Beware of Form Mailto Action 了解其中的一些陷阱。
【讨论】:
如果您想要的东西甚至接近为合理数量的人工作,那么在问题的限制范围内,您需要使用server side JavaScript(具体取决于您使用的 SSJS 的特定实现, see Whitebeam for an example)。
【讨论】:
你必须使用像 php 或 perl 这样的服务器端脚本
将表单内容发送到服务器端php。在 php 中使用 sendmail 函数编写。
您的内容将发送到该电子邮件。
【讨论】: