【问题标题】:ajax php mail function not working for hotmail addressesajax php邮件功能不适用于hotmail地址
【发布时间】:2012-08-12 00:14:22
【问题描述】:

我的联系表和 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 jquery ajax


    【解决方案1】:

    尝试使用这些更改:

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

    mail函数的第四个参数应该是additional_headers,而不仅仅是来自地址。

    【讨论】:

    • 尝试了上述方法。仍然不工作。它适用于除 Hotmail 之外的所有其他人
    猜你喜欢
    • 2014-06-11
    • 1970-01-01
    • 2015-05-26
    • 1970-01-01
    • 2017-03-22
    • 2014-03-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多