2012-08-11 44 views
0

我遇到了我的联系表单和php mail()函数的问题。出于某种原因,除了老的可怕的Hotmail之外,它们适用于每个电子邮件地址(@ gmail,@yahoo,@outlook甚至@facebook!)。我只是好奇我的代码丢失了什么。我已经检查过邮件服务器,而且显然没有hotmail地址的问题。ajax php邮件功能不适用于hotmail地址

电子邮件甚至不会传送到垃圾邮件/垃圾文件夹(它不会到达hotmail)。我在网上看了一下,有人说要更改标题以避免被垃圾邮件过滤器捕获。任何指向这个?

PHP代码

<?php 
    header('Content-Type: application/json charset=utf-8'); 
    $name = $_POST['name']; 
    $email = $_POST['email']; 
    $message = $_POST['message']; 
    $from = '[email protected]'; 
    $to = '[email protected]'; 
    $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)输入正确。这一部分没什么可做的。我想这个问题是某处头

回答

0

尝试使用这些变化:邮件功能的

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

第四个参数预计additional_headers,不只是从地址。

+0

试过以上。仍然没有工作,它可以与除Hotmail以外的其他人一起工作 – 2012-08-12 02:39:36

相关问题