我在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);
}
}
?>
答案 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';
}
}