PHP的电子邮件联系表格

PHP的电子邮件联系表格

问题描述:

嗨即时通讯问题与我的PHP代码发送电子邮件通过联系表格。我没有得到任何的错误,经过深入研究后可以看到代码没有问题,有人可以帮助我吗?PHP的电子邮件联系表格

<?php 

// Define some constants 
define("RECIPIENT_NAME", "Nuim Buzz"); 
define("RECIPIENT_EMAIL", "[email protected]"); 
define("EMAIL_SUBJECT", "Visitor Message"); 

// Read the form values 
$success = false; 
$senderName = isset($_POST['senderName']) ? preg_replace("/[^\.\-\' a-zA-Z0-9]/", "", $_POST['senderName']) : ""; 
$senderEmail = isset($_POST['senderEmail']) ? preg_replace("/[^\.\-\_\@a-zA-Z0-9]/", "", $_POST['senderEmail']) : ""; 
$senderMessage = isset($_POST['senderMessage']) ? preg_replace("/(From:|To:|BCC:|CC:|Subject:|Content-Type:)/", "", $_POST['senderMessage']) : ""; 

// If all values exist, send the email 
if ($senderName && $senderEmail && $senderMessage) { 
    $recipient = RECIPIENT_NAME . " <" . RECIPIENT_EMAIL . ">"; 
    $headers = "From: " . $senderName . " <" . $senderEmail . ">"; 
    $success = mail($recipient, EMAIL_SUBJECT, $senderMessage, $headers); 
} 


?> 
<html> 
    <head> 
    <title>Thanks!</title> 
    </head> 
    <body> 
    <?php if ($success) echo "<p>Thanks for sending your message! We'll get back to you shortly.</p>" ?> 
    <?php if (!$success) echo "<p>There was a problem sending your message. Please try again.</p>" ?> 
    <p>Click your browser's Back button to return to the page.</p> 
    </body> 
</html> 

的HTML代码:

<h2>Send us an email...</h2> 

    <ul> 

    <li> 
     <label for='senderName'>Your Name</label> 
     <input type='text' name='senderName' id='senderName' placeholder='Please type your name...' required='required' maxlength='40' /> 
</li> 

<li> 
    <label for='senderEmail'>Your Email Address</label> 
    <input type='email' name='senderEmail' id='senderEmail' placeholder='Please type your email address...' required='required' maxlength='50' /> 
</li> 

<li> 
    <label for='message' style='padding-top: .5em;'>Your Message</label> 
    <textarea name='senderMessage' id='message' placeholder='Please type your message...' required='required' cols='80' rows='10' maxlength='10000'></textarea> 
</li> 

    </ul> 

    <div id='formButtons'> 
    <input type='submit' id='sendMessage' name='sendMessage' value='Send Email' /> 

    </div> 

</form> 
+0

你有没有做过任何类型的测试,看看它是否进入IF语句发送电子邮件?我这样做的快速和肮脏的方式是在该循环内添加:echo“HIT”; – 2012-03-22 19:45:14

+0

问题到底是什么?你得到“有问题”?状态消息?你在Windows或Unix/Linux主机上?如果本地邮件服务器配置错误,完全拒绝您的邮件或根本不存在,则mail()将返回false。 – 2012-03-22 19:53:02

看来你的问题是服务器设置。你是本地人吗?您是否在共享托管计划?如果后者存在域名问题,请联系您的托管解决方案以确保您的设置正确。同时检查你的服务器错误日志。

+0

感谢刚刚发现我需要一个付费域名,以便通过我的主机设置电子邮件,哦,好吧,谢谢你们 – rudawg 2012-03-22 19:59:36

+0

猜猜我是怎么知道的,它发生在我身上一次也;) – 2012-03-22 20:01:13

+0

哈哈,我很幸运,没有或我会浪费了更多时间:P谢谢你:D – rudawg 2012-03-23 07:26:05

我的第一个猜测是,你在本地运行这一点,在这种情况下,你需要建立一个本地邮件服务器。

而且,如果任何这些变量(例如$senderMessage)为"0",则if ($senderName && $senderEmail && $senderMessage)将失败。

我找不到<form>。可能会导致问题。