2016-01-23 147 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