wp_mail返回true,但未收到邮件 - php

我正在使用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 = '[email protected]';

    if($name == "" || $email == "" || $query == "") {
        echo "Fail";
        return false;
    }

    $subject = "Website - Query from ".$name;
    $message = "Hi,
        <p><strong>Name</strong>:".$name."</p>
        <p><strong>Mail</strong>:".$email."</p>
        <h3><strong>Query</h3>
        <p>".$query."</p>";
    $headers[] = 'From: [email protected]'."\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' ); 

php大神给出的解决方案

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

您有SPF记录设置吗?如果您是从网站发送电子邮件,并且将发件人标头设置为@gmail.com@hotmail.com,则该邮件肯定不会到达您的收件箱,因为该电子邮件不是来自gmail或hotmail服务器,而是来自您的,因此认为您正在尝试进行网络钓鱼攻击。

编辑:

不,它没有标记为垃圾邮件。我也检查了垃圾邮件。邮件不是
接收。一旦发送了wp_mail(),它应该返回true。
邮件对不对?所以我应该将标题从头更改为其他吗?

-vigneshmoha

这意味着邮件已经离开了服务器,并不意味着它将到达收件箱,因为服务器和收件箱之间还有许多其他步骤,在此过程中可能会出错。尝试测试From:标头,更改为[email protected]

为什么我的注册表单可以在除Firefox之外的所有浏览器中使用? - php

在这里可用:http://syllableapp.com/test基本上,在Safari,Chrome,Opera,Webkit Nightly等中,表单可以完美地按预期工作。但是,在Firefox中,提交时只是...不执行任何操作。为什么是这样?这是我的JavaScript:$(document).ready(function() { $('in…

验证php中的javascript对象 - php

在我的用户界面中,用户可以构建一些javascript对象,例如:var box = { "width": "100px", "height": "200px", "click": function () { alert("You clicked t…

jQuery-根据用户输入显示/隐藏 - php

我的页面上有以下div:<div id="page1"> Some content </div> <div id="page2"> More content </div> <div id="page3"> Even more content…

在熊猫中,如何从单词列表或单词集中选择数据框中的短语? - python

在Python3和熊猫中,我具有数据框:df_projetos_api_final.info() <class 'pandas.core.frame.DataFrame'> Int64Index: 93631 entries, 1 to 93667 Data columns (total 21 columns): AnoMat…

Python:同时在for循环中添加到列表列表 - python

我想用for循环外的0索引值创建一个新列表,然后使用for循环添加到相同的列表。我的玩具示例是:import random data = ['t1', 't2', 't3'] masterlist = [['col1', 'animal1', 'an…