Ajax PHP 邮件函数不适用于热邮件地址


ajax php mail function not working for hotmail addresses

我的联系表单和 php mail() 函数有问题。出于某种原因,它们适用于每个电子邮件地址(@gmail,@yahoo,@outlook甚至@facebook!),除了旧的可怕的hotmail。我只是好奇我的代码在哪里缺少某些东西。我已经检查了邮件服务器,显然hotmail地址没有问题。

电子邮件甚至不会传递到垃圾邮件/垃圾邮件文件夹(它不会到达hotmail)。我在网上看了一下,有人说要更改标题以避免被垃圾邮件过滤器捕获。对此有什么指示吗?

PHP代码

<?php
    header('Content-Type: application/json charset=utf-8');
    $name = $_POST['name'];
    $email = $_POST['email'];
    $message = $_POST['message'];
    $from = 'companyname@mail.com'; 
    $to = 'myemail@hotmail.com'; 
    $subject = $name . ' has sent you a message';
    $human = $_POST['antispam'];
    $body = "From: $name'n E-Mail: $email'n Message:'n $message";
    if (isset($_POST['name']) && $human == '4') {                
        if (mail ($to, $subject, $body, $from)) { 
            echo '{"status":"1"}';
        } else { 
            echo '{"status":"0"}';
        } 
    } 
    else 
    {
        echo '{"status":"2"}';
    }
?>

if 语句只是检查所有表单是否有效以及是否正确输入了反垃圾邮件 (2+2)。 这部分没什么可做的。我想问题出在标题中的某个地方

尝试使用以下更改:

<?php
    header('Content-Type: application/json; charset=utf-8');
    ...
    $from = 'companyname@mail.com'; 
    $headers = 'From: '. $from. "'r'n";
    ...
        if (mail ($to, $subject, $body, $headers)) { 
    ...
?>

邮件函数的第 4 个参数预计是additional_headers,而不仅仅是来自地址。