听起来您需要验证表单,然后将其发送到服务器,然后重新验证(无法插入 JavaScript)并将邮件请求发送到电子邮件服务器。
我建议将 PHP 用于重新验证表单并将请求发送到电子邮件服务器的服务器,因为它简单且受广泛支持。
假设你有这个 HTML
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="script.js"></script>
<form id="emailForm" method="post" action="mail.php">
<input type='text' name='firstName' id="firstName"><br>
<input type='text' name='lastName' id='lastname'><br>
<input type='submit' value='submit' name='submit'>
</form>
您可以使用 javascript 和 jQuery 验证用户是否在所有字段中输入了内容。
在文件 script.js 中说你有:
var formIsOkay = true;
$(document).ready( function() {
$('#emailForm').submit( function() {
$('#emailForm input').each( function() {
if ( this.val() == '' ) { formIsOkay = false; }
}
return formIsOkay;
}
}
然后在 email.php 中你会得到这样的东西:
<?php
$to = 'email@domain.com';
$from = 'email@domain.com';
$subject = 'Form';
$message = 'Hello, the following variables were supplied:<br>';
foreach($_POST as $key => $val){
$message .= "$key = $val<br>";
}
$message = wordwrap($message, 70);
$headers = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
$headers .= "To: $to" . "\r\n";
$headers .= "From: $from" . "\r\n";
mail($to, $subject, $message, $headers);
?>
为此,您需要在服务器上运行 PHP,并在 php 中设置 SMTP 服务器,但大多数服务器都有这个。
请注意,PHP 是如何立即重新验证表单的,所以当有人提交一个空表单时,它仍然会在电子邮件中发送。