2015-02-12 58 views
0

我確定我錯了一些基本的東西,但找不到錯誤的位置。我會感謝你的幫助。在PHP郵件命令中包含變量

我有一個單頁4字段聯繫表單的PHP頁面。

我需要發送名稱和電子郵件作爲變量,所以我可以看到它正確的時候收到電子郵件。

IT WORKS - 但不要發送姓名和電子郵件爲變量:

所有郵件到達如"[email protected]"和犯規看起來很專業(且無法從我的前景做回覆)

if ($_POST) { 

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

      $to = "[email protected]"; 
      $subject = "Website CONTACT"; 

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

      $message = "<html><body>"; 
      $message .= '<table rules="all" style="border-color: #666;" cellpadding="10">'; 
      $message .= "<tr><td><strong>Name:</strong> </td><td>" . strip_tags($_POST['name']) . "</td></tr>"; 
      $message .= "<tr><td><strong>Email:</strong> </td><td>" . strip_tags($_POST['email']) . "</td></tr>"; 
      $message .= "<tr><td><strong>Subject:</strong> </td><td>" . strip_tags($_POST['subject']) . "</td></tr>"; 
      $message .= "<tr><td><strong>Message:</strong> </td><td>" . strip_tags($_POST['message']) . "</td></tr>"; 
      $message .= "</table>"; 
      $message .= "</body></html>"; 

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

IT DOENST WORKS(但有格式和變量,因爲我需要)

我想收到像是正常名稱的消息,所以我可以做一個快速回復。 - 此代碼不發送電子郵件,不起作用 -

if ($_POST) { 

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

      $to = "[email protected]"; 
      $subject = "Website CONTACT"; 

      $headers = "From: " . strip_tags($_POST['email']) . "\r\n"; 
      $headers .= "Reply-To: ". strip_tags($_POST['email']) . "\r\n"; 
      $headers .= "MIME-Version: 1.0\r\n"; 
      $headers .= "Content-Type: text/html; charset=ISO-8859-1\r\n"; 


      $message = "<html><body>"; 
      $message .= '<table rules="all" style="border-color: #666;" cellpadding="10">'; 
      $message .= "<tr><td><strong>Name:</strong> </td><td>" . strip_tags($_POST['name']) . "</td></tr>"; 
      $message .= "<tr><td><strong>Email:</strong> </td><td>" . strip_tags($_POST['email']) . "</td></tr>"; 
      $message .= "<tr><td><strong>Subject:</strong> </td><td>" . strip_tags($_POST['subject']) . "</td></tr>"; 
      $message .= "<tr><td><strong>Message:</strong> </td><td>" . strip_tags($_POST['message']) . "</td></tr>"; 
      $message .= "</table>"; 
      $message .= "</body></html>"; 

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

我會感謝您對這個「標題」問題的幫助!

謝謝。

+0

您確定電子郵件沒有被髮送嗎?這種方法雖然很有趣,但通常會導致垃圾郵件過濾器的問題如果你有一個,它可能會意識到你發送該服務器的服務器不允許爲輸入該信息的人的該域發送電子郵件。如果你只是打印標題,他們看起來像什麼?你的主機是否需要php郵件功能的-f標誌? – 2015-02-12 05:13:26

+0

請提供HTML表格代碼,而不是您包含兩次的PHP代碼 – Haring10 2015-02-12 05:23:09

回答

0

確保您正在接收您的發佈數組中的數據。確保你的表單動作。您之前已將$ message變量聲明爲空後,這不夠好。請檢查更新的代碼,並讓我知道。

if ($_POST) { 

      $name = strip_tags($_POST['name']); 
      $email = strip_tags($_POST['email']); 
      $subject = strip_tags($_POST['subject']); 
      $message = strip_tags($_POST['message']); 

      $to = "[email protected]"; 
      $subject = "Website CONTACT"; 

      $headers = "From: " . strip_tags($_POST['email']) . "\r\n"; 
      $headers .= "Reply-To: ". strip_tags($_POST['email']) . "\r\n"; 
      $headers .= "MIME-Version: 1.0\r\n"; 
      $headers .= "Content-Type: text/html; charset=ISO-8859-1\r\n"; 


      //$message = ""; 
      //$message .= ''; 
      $message .= "\r\nName: " . $name . ""; 
      $message .= "Email: " . $email . "\r\n"; 
      $message .= "Subject: " . $subject . "\r\n"; 
      $message .= "Message: " . $message . ""; 
      //$message .= ""; 
      //$message .= ""; 

       mail($to,$subject,$message,$headers); 
      } 
+0

Vin000,感謝您的回覆。我接收數據,表單動作沒問題。出於某種原因,$ message字段顯示爲空,可能是因爲使用HTML元素(表格),並且此窗口無法顯示它。我會嘗試更新所有字段和html標記的問題。 – Lucho 2015-02-12 05:17:34

+0

代碼編輯,可以幫助! – Lucho 2015-02-12 05:27:42