2016-01-23 151 views
2

我想与PHP做一个联系表格。不应该这个代码工作,或者我监督什么?这有点基本,但我只是试图让它工作。发送电子邮件与表格

<div> 
      <p id="feedback"><?php echo $feedback;?></p> 
      <form action="?" method="post"> 
       <ul> 
        <li> 
         <label for="name">Name:</label> 
         <input type="text" name="name" id="name"> 
        </li> 
        <li> 
         <label for="email">Email:</label> 
         <input type="text" name="email" id="email"> 
        </li> 
        <li> 
         <label for="message">Message:</label> 
         <textarea id="message" name="message" cols="42" rows="9"></textarea> 
        </li> 
        <li> 
         <input type="submit" value="Submit"> 
        </li> 
       </ul> 
      </form> 
     </div> 

<?php 

$to = '[email protected]'; 
$subject = 'This came from the other world'; 

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

if($_POST) { 
    mail($to, $subject, $message, $header); 
    $feedback = 'Your Message has been send'; 
} 
?> 

回答

2

更改此

<input type="submit" value="Submit" name="submit"> # add name field 

在你的邮件代码

if (isset($_POST['submit'])) { 
    $to = '[email protected]'; 
    $subject = 'This came from the other world'; 

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

    $message = "Customer Name : ".$name\r\n; 
    $message .= "Customer Email : ".$email\r\n; 
    $message .= "Customer Message : ".$msg\r\n; 

    $headers = "MIME-Version: 1.0\r\n"; 
    $headers .= "Content-Type: text/html; charset=ISO-8859-1\r\n"; 

    if (!mail($to, $subject, $message, $headers)) { 
     echo "Sending Failed"; 
    } 
    else{ 
     echo "Your Message has been send"; 
    } 
} 

如果您在发送邮件的本地主机看一看这一

  1. XAMPP
  2. WAMP
+0

非常感谢您的评论。当我尝试更改我的代码时,我得到一个服务器错误500.我实际上使用MAPP,因此我必须查看它。 – KrMa

+0

@MadsKristensen主持项目并检查。那么你可以检查 –

+0

好吧,我会做到这一点。我还没有域名,所以我会等待这个功能。我只在本地主机上运行它。再次感谢 :) – KrMa

1

您的标题需要包含实际的电子邮件标题,您只需重复电子邮件地址即可。

例子:

$to  = '[email protected]'; 
$subject = 'the subject'; 
$message = 'hello'; 
$headers = 'From: [email protected]' . "\r\n" . 
    'Reply-To: [email protected]' . "\r\n" . 
    'X-Mailer: PHP/' . phpversion(); 

mail($to, $subject, $message, $headers); 

documentation on the mail() function会告诉你为什么头和换行符是重要的,给你安全提示。

+0

非常感谢您的回答。我只是试图改变代码,但我仍然无法接收任何邮件。你认为这是因为我使用我的本地主机? – KrMa

+0

这个stackoverflow后涵盖了详细:http://stackoverflow.com/questions/18288007/php-send-mail-from-localhost – HenryTK