php中的联系表单不接收hotmail的邮件

时间:2014-11-22 03:46:51

标签: php

我在php中尝试联系表单。我收到gmail,yahoo等邮件,但没有收到hotmail中的任何邮件。我尝试了很多但不知道问题是什么。为什么我不能收到邮件中的邮件?这是代码。

if (empty($error)) {

     $to = 'abc@gmail.com, ' . $email;
    $subject = " contact form message";
     $repEmail = 'abc@gmail.com';
       $headers = 'From:  Contact Detail <'.$repEmail.'>'.$eol;
    $content =  "Contact Details: \n 
Name:$name \n 
Batch:  $batch \n
 Email:  $email \n   
mobile:  $mobile " ;
 $success = "<b>Thank you! Your message has been sent!</b>";
    mail($to,$subject,$content,$headers);

    }
    }
    ?>

2 个答案:

答案 0 :(得分:0)

检查服务器管理员的电子邮件是否有退回邮件。我猜它与hotmail拒绝它有关,因为它不喜欢你的主机,或者因为你没有设置SPF或DKIM签名。无论哪种方式,责任可能在您的服务器电子邮件管理员而不是您的代码上。考虑到你必须做的所有反垃圾邮件,电子邮件实际上有点复杂。

您可能需要考虑使用第三方电子邮件服务。 SMTP通过Gmail帐户或Amazon SES,以便他们处理更多这些细节。这也可以由服务器管理员设置,或者在PHP中使用库完成。 Is there a SMTP mail transfer library in PHP

答案 1 :(得分:0)

这更可能是

if (isset($_REQUEST['email']))
//if "email" is filled out, send email
  {
  //send email
  $email = $_REQUEST['email'] ;
  $subject = 'Order' ;
  $message = 
   'Product Name :'. $_REQUEST['proname']."\n". //these all are example details
   'Name :'.$_REQUEST['name']."\n".
   'Phone :'. $_REQUEST['phone']."\n".
   'City :'.$_REQUEST['city']."\n".
   'Address :'.$_REQUEST['address']."\n".
   'Quantity :'. $_REQUEST['select']; 

if ($email == "" || $subject == "" || $message == ""  )
    {
    echo 'Please fill the empty fields';
    }
else{ 
  mail("anything@something.com", $subject,
  $message, "From:" . $email);
  echo 'Thank you ! we will contact you soon';
}

  }