gpt4 book ai didi

php - 为什么 PHP 表单不发送电子邮件

转载 作者:搜寻专家 更新时间:2023-10-31 21:28:13 24 4
gpt4 key购买 nike

我正在尝试使用 jquery 和 PHP 发送电子邮件,但不知何故,即使 PHP 成功执行,我也收不到电子邮件。

这是我的 javascript 代码:

<script type='text/javascript'>
$("#formoid").submit(function(event) {
event.preventDefault();
var $form = $(this),
url = $form.attr('action');
var posting = $.post(url, {
name: $('#name').val(),
email: $('#email').val(),
message: $('#message').val()
});
posting.done(function(data) {
$("#result").empty().append('Thank you for contacting. Will get back to you as sson as possible.');
});
});
</script>

我的 PHP 看起来像这样:

<?php 
if(isset($_POST['submit'])){
$to = "email@gmail.com"; // this is your Email address
$from = $_POST['email']; // this is the sender's Email address
$name = $_POST['name'];
$email = $_POST['email'];
$subject = "Portfolio form submission";

$message = $name . " " . $email . " wrote the following:" . "\n\n" . $_POST['message'];

$headers = "From:" . $from;
$headers2 = "From:" . $to;
mail($to,$subject,$message,$headers);
}
?>

当我提交表单并检查 dom 时,我发现结果很好。在 XHR 详细信息中,它显示:

statusText: "OK"

我是不是做错了什么?

编辑:按要求添加 HTML:

<form class="no-bottom" id="formoid" action="contact.php" title="" method="post">
<label for="name" class="sr-only">Name</label>
<input type="text" class="underline" name="name" id="name" placeholder="Your name..." required>
<label for="email" class="sr-only">Email</label>
<input type="email" class="underline" name="email" id="email" placeholder="Your email..." required>
<label for="message" class="sr-only">Message</label>
<textarea class="underline" name="message" id="message" cols="30" rows="6" placeholder="Here goes the message..." required></textarea>
<div class="margin-1"></div>
<input type="submit" value="Send it">
</form>

最佳答案

isset($_POST['submit']) 正在检查键 submit 是否存在于从客户端发布的日期。

然而,从客户端发送的数据不包括它。

var posting = $.post(url, {
name: $('#name').val(),
email: $('#email').val(),
message: $('#message').val()
});

要使其正常工作,您可以将其添加到 POST 数据中或检查服务器中的另一个 key 。

var posting = $.post(url, {
name: $('#name').val(),
email: $('#email').val(),
message: $('#message').val(),
submit: 'anythingTruthyHere' // Added `submit` key
});

或者,您可以检查 email 是否存在于 POST 数据中

if (isset($_POST['email'])) {
// send mail code here

关于php - 为什么 PHP 表单不发送电子邮件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33207555/

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