2012-07-15 91 views
2

我让它工作了一分钟,我不知道我做了什么来阻止它工作。它仍然带我到另一页上提交,但我的电子邮件绝对没有活动。联系表格不发送

HTML

<form id="contact_form" action="sendemail.php" method="post"> 
    <p><label>Name:<br /> 
     <input type="text" name="name" class="textfield" value="" /> 
    </label></p> 

    <p><label>Email: <br /> 
     <input type="text" name="email" class="textfield" value="" /> 
    </label></p> 

    <p><label>Phone Number: <br /> 
     <input type="text" name="phone" class="textfield" value="" /> 
    </label></p> 

    <p><label>Detail: <br /> 
     <textarea name="detail" class="textarea" cols="45" rows="5"></textarea> 
    </label></p> 

    <p><input type="submit" name="submit" class="button" value="Submit" /></p> 
</form> 

PHP

<?php 
$name = $_REQUEST['name']; 
$email = $_REQUEST['email']; 
$phone = $_REQUEST['phone']; 
$detail = $_REQUEST['detail']; 

$message = "Name: $name\nEmail: $email\nPhone Number: $phone\nDetail: $detail" ; 

mail("[email protected]", "You have recieved a message", "Information Requested:\n\n$message", "From: $email") ; 

header("location: http://mywebsite.com/thanks.html"); 

?> 
+0

你收到任何错误消息,这将您的垃圾邮件文件夹 – Austin 2012-07-15 22:56:31

+0

? – 2012-07-15 22:57:15

+1

您是否设置了邮件服务器? – patricksweeney 2012-07-15 23:00:49

回答

0

许多服务器都有一个I/O电子邮件的限制。它在尝试代码时发生过一次。也许这只是这个,或者 - 正如奥斯汀所说 - 也许这条消息被发送到您的电子邮件地址的SPAM文件夹。

尝试检查您的网络服务器日志,看看它是否包含更多信息。

0

你应该定义页眉和做一些改进,尝试使用此代码:

// As you know that you form uses POST method, you can use $_POST instead of $_REQUEST 
$name = $_POST['name']; 
$email = $_POST['email']; 
$phone = $_POST['phone']; 
$detail = $_POST['detail']; 

// Headers 
$headers = "From: =?utf-8?B?".base64_encode ('Sender Name')."?= <[email protected]>\r\n"; 
$headers .= "MIME-Version: 1.0\r\n"; 
$headers .= "Content-Type: text/html; charset=utf-8\r\n"; 

// As the content is HTML, you shoud use <br /> instead of \n to break line 
$message = "Name: $name<br />Email: $email<br />Phone Number: $phone<br />Detail: $detail" ; 

// Trying to send the message 
if (mail('[email protected]', "=?utf-8?B?".base64_encode('Message subject')."?=", $message, $headers)) 
    header("location: http://mywebsite.com/thanks.html"); 
else 
    echo 'Message fail'; 
0

检查您的垃圾/垃圾邮件文件夹。如果消息是不存在的,试试这个代码:

<?php 
$name = $_REQUEST['name']; 
$email = $_REQUEST['email']; 
$phone = $_REQUEST['phone']; 
$detail = $_REQUEST['detail']; 

$message = "Name: $name\nEmail: $email\nPhone Number: $phone\nDetail: $detail" ; 

var_dump(mail("[email protected]", "You have recieved a message", "Information Requested:\n\n$message", "From: $email")); 

//header("location: http://mywebsite.com/thanks.html"); 
?> 

如果邮件发送成功,它将返回bool(true),否则将返回bool(false),如果它失败了。

此外,请确保电子邮件地址是正确的...

0

您是否有任何错误?使用ini_set('display_errors', true)并参阅。


你应该改变$_REQUEST$_POST,因为$_REQUEST时,应使用你不知道数据来自何处(GET,POST或COOKIE)。我们看到来自POST的数据,因为您将表单的方法指定为POST。

您还应该检查这些变量是否使用isset()empty()来设置。


@Marcio Simao
头是没有必要的脚本工作。这是可选参数。

+2

您将增加很多邮件进入垃圾邮件文件夹的机会,因此强烈建议您定义它们 – 2012-07-15 23:34:02

0

可能这是因为HTML的,如果它向你展示var_dump()bool(true) ...

尝试推出从标签的输入域...通常被用于为即将到来的字段标签。不把该领域的标签标记下......这样的:

<p><label>Name:<br /> 
    <input type="text" name="name" class="textfield" value="" /> 
</label></p> 

但先用var_dump()检查你的PHP代码。

0

你可以使用

<?php  
if(isset($_POST['submit'])){  
$name = $_POST['name']; 
... other info 
$message = "Name: $name\nEmail: $email\nPhone Number: $phone\nDetail: $detail"; 
mail("[email protected]", "You have recieved a message", "Information Requested:\n\n$message", "From: $email") ; 
    header("location: http://mywebsite.com/thanks.html"); 
} 
?> 
0

嗨亲切,如果其工作检查您的邮件()。

if(mail($to, $subject, $message, $headers)){ 
    // Working 
} 

如果不是好心做邮件功能的标准格式

$name = $_REQUEST['name']; 
$email = $_REQUEST['email']; 
$phone = $_REQUEST['phone']; 
$detail = $_REQUEST['detail']; 


$subject = "Subject"; 
$headers = "From: \"".$youremail." ".$youremail."\" <".$youremail.">\n"; 
$headers .= "To: \"".$email."\" <".$email.">\n"; 
$headers .= "Return-Path: <".$email.">\n"; 
$headers .= "MIME-Version: 1.0\n"; 
$headers .= "Content-Type: text/HTML; charset=ISO-8859-1\n";  

$message = "Your Message here!"; 

if(mail($to, $subject, $message, $headers)){ 
    // success 
}