我们在网站上使用php电子邮件表单,在向其他电子邮件程序发送电子邮件时工作正常,只是没有gmail,我检查过垃圾邮件和收件箱,但我什么都没得到,就像gmail dosnt信任电子邮件一样完全无视它。我们怎样才能让他们通过?
用于表单的代码是:
<div id="contact-form">
<form id="commentForm" action="assets/php/mail.php" method="POST">
<input type="text" name="name" class="required" placeholder="Name..">
<input type="text" name="email" class="required email" placeholder="Email..">
<input type="text" name="phone" class="required" placeholder="Phone..">
<textarea name="message" placeholder="Message.." class="required"></textarea><br />
<input class="subm" type="submit" value="Submit..">
</form>
</div>
和php是
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Contact Form Confirmation</title>
<meta http-equiv="refresh" content="4; url=http://www.domain.co.uk">
</head>
<body>
<?php $name = $_POST['name'];
$email = $_POST['email'];
$phone = $_POST['phone'];
$message = $_POST['message'];
$formcontent="
<h1>From :</h1> $name \n
<h1>Email :</h1> $email \n
<h1>Phone :</h1> $phone \n
<h1>Message :</h1> $message
";
$recipient = "studio@domain.co.uk";
$subject = "Contact Form";
$mailheader = "MIME-Version: 1.0" . "\r\n";
$mailheader .= "Content-type:text/html;charset=iso-8859-1" . "\r\n";
$mailheader .= "From: $email \r\n";
mail($recipient, $subject, $formcontent, $mailheader) or die("Error!");
echo("<p>Thanks for getting in touch, we'll get back to you shortly..</p>");
?>
</body>
</html>
答案 0 :(得分:3)
GMail不是唯一会忽略sendmail电子邮件的邮件服务。
可能原因是您的From:标头与您的邮件服务器主机名不匹配。如果您正在使用第三方托管,则应找出主机名(例如“myhost.com”)并在From:标头中使用该名称。然后使用“回复”标题中的正确电子邮件地址。
$mailheader .= "Reply-To: Some One <someone@mydomain.com>\r\n";
$mailheader .= "Return-Path: Some One <someone@mydomain.com>\r\n";
$mailheader .= "From: Some One <mydomain@myhost.com>\r\n";
$mailheader .= "Organization: My Organization\r\n";
$mailheader .= "Content-Type: text/plain\r\n";
要提高可传递性,您应该使用SMTP通过实际的电子邮件帐户发送邮件。
为了绝对最大限度地提高可传递性,您应该使用ESP。
答案 1 :(得分:1)
另一种(更简单)的可能性......尝试使用-f选项:
mail($recipient, $subject, $formcontent, $mailheader, "-f {$email}") or die("Error!");
答案 2 :(得分:0)
我刚才在这里回答了类似的问题:
Sending via email info from a contact form with PHP
只需查看它,我相信它拥有解决问题所需的所有代码,至少如果您不希望发送大量电子邮件。