Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/79.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 如何通过html或js向电子邮件提交消息?_Javascript_Jquery_Html_Email - Fatal编程技术网

Javascript 如何通过html或js向电子邮件提交消息?

Javascript 如何通过html或js向电子邮件提交消息?,javascript,jquery,html,email,Javascript,Jquery,Html,Email,我正在建立我的个人网站。在联系人页面,我希望访问者向我发送消息。一旦他们单击按钮,一封包含键入信息的电子邮件将发送到我的电子邮件地址。我搜索了一些由PHP实现的结果。但是我想得到一些关于html或javascript的建议 我的以下代码可以激活电子邮件窗口。但我不想让访问者再次输入信息。我想电子邮件将被发送后,提交按钮被点击 <form method="post" action='mailto:myemail@gmail.com'> <label for="visito

我正在建立我的个人网站。在联系人页面,我希望访问者向我发送消息。一旦他们单击按钮,一封包含键入信息的电子邮件将发送到我的电子邮件地址。我搜索了一些由PHP实现的结果。但是我想得到一些关于html或javascript的建议

我的以下代码可以激活电子邮件窗口。但我不想让访问者再次输入信息。我想电子邮件将被发送后,提交按钮被点击

<form method="post" action='mailto:myemail@gmail.com'>
    <label for="visitor-name">Name</label>
    <input type="text" id="visitor-name" placeholder="Please Enter Your Name">
    <label for="visitor-email">E-mail</label>
    <input type="text" id="visitor-name" placeholder="Please Enter Your E-mail">
    <label for="visitor-message">Message</label>
    <textarea id="visitor-message" placeholder="Please Leave your Message"></textarea>
    <input type="submit" value="Submit" id="contact-sub" onclick="sendmessage();">
</form>

顺便说一句,sendmessage函数是空的。

要执行您想要的操作,您需要将其指向服务器端技术—mailto打开客户端的邮件应用程序(如果有)


您提到的脚本指向像GMail这样的服务,这是服务器端代码。

这里是一个简单的PHP联系人示例,只需放置一个表单并让它在这里发送表单结果,因为PHP是服务器端代码,它可以发送消息,而用户不必使用他们的电子邮件客户端。我建议也进行一次简单的验证。
$EmailFrom = "WHO@changeme.com";
$EmailTo = "you@whatever.com";
$Name = Trim(stripslashes($_POST['Name'])); 
$Message = Trim(stripslashes($_POST['Message'])); 
$test = $_POST['math'];
// validation
$validationOK=true;
if (!$validationOK) {
  print "<meta http-equiv=\"refresh\" content=\"0;URL=error.htm\">";
  exit;
}

// prepare email body text
$Body = "";
$Body .= "Name: ";
$Body .= $Name;
$Body .= "Message: ";
$Body .= $Message;    
// send email 
$success = mail($EmailTo, $Subject, $Body, "From: <$EmailFrom>");
// redirect to success page 
if ($success){
  print "Thanks for contacting me";
}
?>

我相信您已经阅读了这些响应,并且已经看到了,但是您想要做的仅仅是通过客户端代码是不可能的。这些服务器端解决方案是有效的,因为这些服务器环境中的很多都有不同的服务器和其他设置来处理发送电子邮件

这并不像做一个AJAX请求那么简单

您可能会找到第三方服务,帮助您处理事务性电子邮件,如

这些都可以工作,因为它们完成了服务器端需要的所有工作。您所需要做的就是通过AJAX访问他们的API端点,就像访问其他任何东西一样,还有bam。Mandrill将为您发送电子邮件


现在,Mandrill有一个免费层,这可能就是您所需要的。但是想想这会被使用多少,因为使用像Mandrill这样的东西可能更值得,而不是使用自己的服务器端解决方案。

没有像PHP这样的服务器端代码来处理电子邮件,HTML和JavaScript都不能在不打开客户端默认邮件应用程序的情况下单独发送电子邮件。由于您表单中的mailto,如果用户计算机上有邮件客户端,这将打开该客户端。如上所述,如果您想通过服务器端发送代码,则操作需要指向一个处理post服务器端表单的程序。关于nodejs@MaximHash如何:nodejs是一个服务器端应用程序,即使使用javascript。它的哪一部分,但我想就html或javascript获得一些建议。不清楚?你不能只用这些。很抱歉