PHP邮件程序不发送邮件

时间:2012-02-15 01:42:56

标签: php email

我正在尝试从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>Smart Gardens Gravesend | Garden Maintenance</title>
<link href="global.css" rel="stylesheet" type="text/css" />
    <link rel="stylesheet" media="all" type="text/css" href="menu_style.css" />
        <link rel="stylesheet" href="engine/css/vlightbox.css" type="text/css" />
        <style type="text/css">#vlightbox a#vlb{display:none}</style>
        <link rel="stylesheet" href="engine/css/visuallightbox.css" type="text/css" media="screen" />
        <script src="engine/js/jquery.min.js" type="text/javascript"></script>
</head>
<body>
<div id="wrapper">
<div id="logo2"><img src="images/logo_02.png" width="231" height="101" alt="logo" /></div>
<div class="menu bubplastic horizontal lime">
    <ul>
        <li><span class="menu_r"><a href="about.html"><span class="menu_ar">About Us</span></a></span></li>
        <li class="highlight"><span class="menu_r"><a href="maintenance.html"><span class="menu_ar">Maintenance</span></a></span></li>
        <li><span class="menu_r"><a href="landscaping.html"><span class="menu_ar">Landscaping</span></a></span></li>
        <li><span class="menu_r"><a href="tree.html"><span class="menu_ar">Tree Work</span></a></span></li>
        <li><span class="menu_r"><a href="fencing.html"><span class="menu_ar">Fencing</span></a></span></li>
        <li><span class="menu_r"><a href="contact.php"><span class="menu_ar">Contact Us</a></span>
        </div>
<div id="content">
<form action="<? echo $_SERVER['PHP_SELF']; ?>" method="post">
<table border ="0">
<tr>
  <td width="133">Name:</td><td width="252"><input type="text" size="42" name="name"/></td></tr>
<tr>
  <td>Email:</td><td><input type="text" name="email" size="42"/></td></tr>
<tr><td>Message</td><td><textarea name="message" rows="5" cols="31"></textarea></td></tr>
<tr><td></td><td><input type="submit" value="Submit"/></td></tr>
</table>
</form>
<?php
if(isset($_POST['name']) && isset($_POST['email']) && isset($_POST['message'])){
$name = $_REQUEST['name'] ;
$email = $_REQUEST['email'] ;
$message = $_REQUEST['message'] ;
$headers = "X-Mailer: php";
mail("mattmaclennan@live.co.uk", "Email from $name",
$message, "From:" . $email, $headers);
echo "Thanks, your email has been sent!";
}
?>
<br />
<br />
<div class="commentbox">
<h2>Caroline Roe, Old Road East, Gravesend</h2>
<p>Smart Gardens have been maintaining our gardens for 4 years now. We are very happy with their personal, friendly and knowledgable service. Highly recommended.</p>
</div>
<div class="commentfooter"></div>
<div class="commentbox">
<h2>Brian Colley, Darnley Road, Gravesend</h2>
<p>The Smart Gardens Team have been caring for our gardens for a number of years . Their conscientious, reliable work demonstrates the strength of their professional knowledge and versatile ability.</p>
<p>They have been able to make worthwhile, constructive suggestions which have led to the development and maturity of the rear garden particularly, in both the hard and soft landscape areas.</p>
<p>Their helpful, friendly and trustworthy nature is second to none and we heartily recommend them for routine maintenance or major project development work.</p>
</div>
<div class="commentfooter"></div>
<div class="commentbox">
<h2>Mrs Hathrill, Windmill Hill, Gravesend</h2>
<p>I have regularly used the services of Smart Gardens for both Maintenance and Landscape projects.</p>
<p>They are conscientious, hard working and always strive for perfection. They are also friendly and approachable. I would not hesitate to recommend them.</p>
</div>
<div class="commentfooter"></div>
</div>
</body>
</html>

相同的PHP代码已经在其他邮件程序上工作,但不确定为什么这个不起作用:\ thanks!

1 个答案:

答案 0 :(得分:2)

您很可能遇到电子邮件服务器问题。

但是,以下代码似乎不正确。

mail("mattmaclennan@live.co.uk", "Email from $name",
$message, "From:" . $email, $headers);

尝试:

$headers = "From:" . $email . "\r\n";
$headers .= "X-Mailer: php\r\n";
mail("mattmaclennan@live.co.uk", "Email from $name",
$message, $headers);

另请注意,将“发件人”地址设置为不属于您的域的地址可能会导致邮件在某个时刻被阻止(由您的主机或收件人的垃圾邮件过滤器阻止)。 您可能需要设置Reply-To:标头,只需使用From:作为属于您服务器的电子邮件地址。