gpt4 book ai didi

php - 使用 AJAX 在 PHP 中发送电子邮件

转载 作者:行者123 更新时间:2023-12-03 11:22:46 46 4
gpt4 key购买 nike

我正在尝试在简单的联系表单中使用 AJAX 在 PHP 中发送电子邮件。我有以下用于简单表单的代码、用于提交按钮的 PHP 代码和 AJAX 脚本。

当我尝试发送电子邮件时,它不发送任何电子邮件并且总是触发 AJAX 错误消息。我不太擅长将 AJAX 与 PHP 集成。

下面是我的代码

 <form method="post" class="myform" action="">
<input type="text" name="name" placeholder="Your Name" required><br>
<input type="email" name="email" placeholder="Your Email" required><br>
<textarea rows="4" cols="20" name="message" placeholder="Your Message"></textarea><br>
<input type="submit" name="submit" value="Send"> <span class="output_message"></span>
</form>

<?php
if (isset($_POST['submit'])) {
$name = $_REQUEST['name'];
$email = $_REQUEST['email'];
$message = $_REQUEST['message'];

// Set your email address where you want to receive emails.
$to = 'mymail@gmail.com';
$subject = 'Contact Request From Website';
$headers = "From: ".$name." <".$email."> \r\n";
$send_email = mail($to,$subject,$message,$headers);

echo ($send_email) ? 'success' : 'error';

}?>

<script>
$(document).ready(function() {
$('.myform').on('submit',function(){

// Add text 'loading...' right after clicking on the submit button.
$('.output_message').text('Loading...');

var form = $(this);
$.ajax({
url: form.attr('action'),
method: form.attr('method'),
data: form.serialize(),
success: function(result){
if (result == 'success'){
$('.output_message').text('Message Sent!');
} else {
$('.output_message').text('Error Sending email!');
}
}
});

// Prevents default submission of the form after clicking on the submit button.
return false;
});
});

</script>

最佳答案

我会将 php 部分移动到另一个文件:

<form method="post" class="myform" action="">
<input type="text" name="name" placeholder="Your Name" required><br>
<input type="email" name="email" placeholder="Your Email" required><br>
<textarea rows="4" cols="20" name="message" placeholder="Your Message"></textarea><br>
<input type="submit" name="submit" value="Send"> <span class="output_message"></span>
</form>



<script>
$(document).ready(function() {
$('.myform').on('submit',function(){

// Add text 'loading...' right after clicking on the submit button.
$('.output_message').text('Loading...');

var form = $(this);
$.ajax({
url: "email.php",
method: form.attr('method'),
data: form.serialize(),
success: function(result){
if (result == 'success'){
$('.output_message').text('Message Sent!');
} else {
$('.output_message').text('Error Sending email!');
}
}
});

// Prevents default submission of the form after clicking on the submit button.
return false;
});
});

</script>

在另一个 email.php 中
 <?php
if (isset($_POST['submit'])) {
$name = $_REQUEST['name'];
$email = $_REQUEST['email'];
$message = $_REQUEST['message'];

// Set your email address where you want to receive emails.
$to = 'mymail@gmail.com';
$subject = 'Contact Request From Website';
$headers = "From: ".$name." <".$email."> \r\n";
$send_email = mail($to,$subject,$message,$headers);

echo ($send_email) ? 'success' : 'error';

}?>

关于php - 使用 AJAX 在 PHP 中发送电子邮件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50086547/

46 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com