2012-04-22 75 views
2

有一个问题让我简单的PHP电子邮件联系表格工作。没有错误生成或返回,但我没有收到任何电子邮件。调试php的简单联系表格

这是我的形式http://bitstream.ca/beta2/contact.html

而且我使用的PHP(我当然是正确的电子邮件)

任何人都可以看到下面的表单代码的任何错误? 什么是一些通用的调试步骤来尝试? 在此先感谢!

<?php 
$errors = ''; 
$myemail = '[email protected]';//<-----Put Your email address here. 
if(empty($_POST['name']) || 
    empty($_POST['email']) || 
    empty($_POST['message'])) 
{ 
    $errors .= "\n Error: all fields are required"; 
} 

$name = $_POST['name']; 
$email_address = $_POST['email']; 
$message = $_POST['message']; 

if (!preg_match("/^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z {2,3})$/i", $email_address)) 
    { 
    $errors .= "\n Error: Invalid email address"; 
    } 
    if(empty($errors)) 
    { 
    header('Location: contact-form-thank-you.html'); 
    } 
?> 
<!DOCTYPE HTML> 
<html> 
<head> 
<title>Contact form handler</title> 
</head> 
<body> 
<!-- This page is displayed only if there is some error --> 
<?php 
    echo nl2br($errors); 
?> 
</body> 
</html> 
+2

嗯......我看不到任何实际的'邮件()'调用,因此这就是为什么你没有收到任何电子邮件... – stealthyninja 2012-04-22 20:16:08

+1

好吧..哪里是应该发送电子邮件的电子邮件()函数(或类似的)的调用? – 2012-04-22 20:16:11

回答

0

您可以尝试

<?php 
$errors = array(); 
$myemail = '[email protected]'; // <-----Put Your email address here. 
$name = $_POST ['name']; 
$to = $_POST ['email']; 
$message = $_POST ['message']; 
$subject = "Sample Email"; 
$headers = "From: $myemail" . "\r\n" . "Reply-To: $myemail" . "\r\n" . 'X-Mailer: PHP/' . phpversion(); 

if (empty ($_POST ['name']) || empty ($_POST ['email']) || empty ($_POST ['message'])) { 
    $errors [] = "Error: all fields are required"; 
} 

if (! preg_match ("/^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z {2,3})$/i", $to)) { 
    $errors [] = "Error: Invalid email address"; 
} 

if (count ($errors) == 0) { 
    if (@mail ($to, $subject, $message, $headers)) { 
     $errors [] = "Can't send Email"; 
    } 
    header ('Location: contact-form-thank-you.html'); 
} 
?> 
<!DOCTYPE HTML> 
<html> 
<head> 
<title>Contact form handler</title> 
</head> 
<body> 
    <!-- This page is displayed only if there is some error --> 
<?php 
echo implode ("<br />", $errors); 
?> 
</body> 
</html> 
+0

这是不完全正确的,但if(@mail($ to,$ subject,$ message,$ headers)){让我走在正确的轨道上 – 2012-04-26 21:22:46

0

插入此betwin您if声明:

if(empty($errors)) { 
    mail($email,$subject,$message,$headers); 
    header('Location: contact-form-thank-you.html'); 
}