wp_mail返回true但不接收邮件

我正在使用wp_mail()来接收通过我的wordpress博客中的联系表单提交的邮件。 wp_mail()返回true,但事情是我没有收到任何邮件。 我也尝试将邮件地址从gmail更改为hotmail,但没有运气。

我的联系人模板中的Ajax代码

$('#send').click(function() { //For Validation function validateText(name) { var pattern = /^[a-zA-Z'-.\s]+$/; if (pattern.test(name)) { return true; } return false; } //For Validation function validateMail(mail) { var pattern = /^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z]{2,3}$/; //var pattern = /^\w+@[a-zA-Z_]+?\.[a-zA-Z]{2,3}$/; if (pattern.test(mail)) { return true; } return false; } //Getting values from the form var name = $('#name').val(), mail = $('#mailid').val(), query = $('#message').val(), error = 1; //For Validation if(name == "" || !(validateText(name))) { $('#name').addClass('error'); error = 0; } ////For Validation if(mail == "" || !(validateMail(mail))) { $('#mailid').addClass('error'); error = 0; } //For Validation if(query == "") { $('#message').addClass('error'); error = 0; } if(!error) { // If validation fails return false; } $('#sendAlert').show(); $('#send').html('Sending...'); $.post(ajax_object.ajaxurl, { // Using ajax post method to send data action: 'ajax_action', sendmail: 'nothing', name: name, mail: mail, query: query }, function(data) { $('#send').html('Send'); alert(data); // Alerting response return false; }); }); 

在Functions.php中

 function ajax_action_stuff() { if(isset($_POST['sendmail'])) { function set_html_content_type() { return 'text/html'; } if(isset($_POST['name']) && isset($_POST['mail']) && isset($_POST['query'])) { $name = $_POST['name']; $email = $_POST['mail']; $query = $_POST['query']; $to = 'vigneshmoha@gmail.com'; if($name == "" || $email == "" || $query == "") { echo "Fail"; return false; } $subject = "Website - Query from ".$name; $message = "Hi, 

Name:".$name."

Mail:".$email."

Query

".$query."

"; $headers[] = 'From: no-reply@gmail.com'."\r\n"; $headers[] = ''; add_filter( 'wp_mail_content_type', 'set_html_content_type' ); $mailsent = wp_mail( $to, $subject, $message, $headers); remove_filter( 'wp_mail_content_type', 'set_html_content_type' ); // reset content-type to to avoid conflicts -- http://core.trac.wordpress.org/ticket/23578 if($mailsent) { echo $to; } else { echo 'error'; } } else { echo 'error'; } } else { echo 'error'; } die(); } add_action( 'wp_ajax_ajax_action', 'ajax_action_stuff' ); add_action( 'wp_ajax_nopriv_ajax_action', 'ajax_action_stuff' );

您的电子邮件可能被标记为垃圾邮件,或者只是您的电子邮件提供商不允许它到达您的收件箱,您是通过SMTP发送的吗?

你有SPF记录设置吗? 如果您要从您的网站发送电子邮件,并将from标头设置为@gmail.com@hotmail.com ,这肯定不会到达您的收件箱,因为电子邮件不是来自gmail或hotmail服务器,它即将到来从你的,所以它认为你正在尝试一些网络钓鱼攻击。

编辑:

不,它没有被标记为垃圾邮件。 我也检查了垃圾邮件。 邮件根本没有收到。 一旦发送邮件,wp_mail()应该返回true吗? 那么我应该将from标头更改为其他内容吗?

-vigneshmoha

这意味着邮件已离开您的服务器,这并不意味着它会到达您的收件箱,因为您的服务器和收件箱之间还有许多其他步骤,并且在此过程中可能会出现一些不同的问题。 尝试测试From:标题,更改为example@yourdomainname.com