gpt4 book ai didi

javascript - 使用 Sendemail 的 HTML 表单

转载 作者:行者123 更新时间:2023-12-03 04:50:40 25 4
gpt4 key购买 nike

我不知道问题出在哪里! mail() 工作正常(我已经用一个简单的 php 文件对其进行了测试),但我的表单不发送任何电子邮件!

HTML

  <section id="contact">
<div id="google-map" class="wow fadeIn" data-latitude="35.7777622" data-longitude="10.8285004" data-wow-duration="1000ms" data-wow-delay="400ms"></div>
<div id="contact-us" class="parallax">
<div class="container">
<div class="row">
<div class="heading text-center col-sm-8 col-sm-offset-2 wow fadeInUp" data-wow-duration="1000ms" data-wow-delay="300ms">
<h2>Contact</h2>
<p>Send a message</p>
</div>
</div>
<div class="contact-form wow fadeIn" data-wow-duration="1000ms" data-wow-delay="600ms">
<div class="row">
<div class="col-sm-6">
<form id="main-contact-form" name="contact-form" method="post" action="sendemail.php">
<div class="row wow fadeInUp" data-wow-duration="1000ms" data-wow-delay="300ms">
<div class="col-sm-6">
<div class="form-group">
<input type="text" name="name" class="form-control" placeholder="Name" required="required">
</div>
</div>
<div class="col-sm-6">
<div class="form-group">
<input type="email" name="email" class="form-control" placeholder="Email" required="required">
</div>
</div>
</div>
<div class="form-group">
<input type="text" name="subject" class="form-control" placeholder="Sub" required="required">
</div>
<div class="form-group">
<textarea name="message" id="message" class="form-control" rows="4" placeholder="Type your message" required="required"></textarea>
</div>
<div class="form-group">
<button type="submit" class="btn-submit">Send</button>
</div>
</form>
</div>
<div class="col-sm-6">
</div>
</div>
</div>
</div>
</div>
</section><!--/#contact-->

main.js

// Contact form
var form = $('#main-contact-form');
form.submit(function(event){
event.preventDefault();
var form_status = $('<div class="form_status"></div>');
$.ajax({
url: $(this).attr('action'),
beforeSend: function(){
form.prepend( form_status.html('<p><i class="fa fa-spinner fa-spin"></i> Progress...</p>').fadeIn() );
}
}).done(function(data){
form_status.html('<p class="text-success">Thanks for your message</p>').delay(3000).fadeOut();
});
});

sendemail.php

<?php
$name = @trim(stripslashes($_POST['name']));
$from = @trim(stripslashes($_POST['email']));
$subject = @trim(stripslashes($_POST['subject']));
$message = @trim(stripslashes($_POST['message']));
$to = 'MyEmail@RemovedFor.privacy';

$headers = array();
$headers[] = "MIME-Version: 1.0";
$headers[] = "Content-type: text/plain; charset=iso-8859-1";
$headers[] = "From: {$name} <{$from}>";
$headers[] = "Reply-To: <{$from}>";
$headers[] = "Subject: {$subject}";
$headers[] = "X-Mailer: PHP/".phpversion();

mail($to, $subject, $message, $headers);

die;

您能帮我解决一下问题吗?当我将简单的邮件('MyEmail@RemovedFor.privacy','我的主题','消息')添加到sendemail.php文件时,每次提交表单时,我都会收到一封电子邮件!但我从未收到邮件($to, $subject, $message, $headers);

非常感谢

最佳答案

您正在根据用户的输入欺骗 From header 。不要这样做。

电子邮件的“发件人” header 必须准确代表电子邮件的发件人 - 如果您在此 header 中插入另一个值,许多邮件服务器将拒绝您的邮件或将其标记为垃圾邮件,因为生成的邮件将失败 SPF和/或 DMARC 检查。

使用准确表示消息来源的 From header 。例如,如果您的网站是 example.com,请将 From header 设置为 From: webmaster@example.com。在邮件正文或 Reply-To header 中包含用户设置的电子邮件地址和姓名。

关于javascript - 使用 Sendemail 的 HTML 表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42674080/

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