2012-01-07 138 views
0

我在使用PHP創建聯繫表單時遇到了無窮無盡的麻煩。PHP郵件功能無法正常工作

我首先嚐試了寫入數據的方法(如問題中所述:HTML Form Not Outputting To CSV File (Or Displaying Correct Error Messages)),現在我只是嘗試將自己的電子郵件中的信息發送給自己的方法。

這裏是我的jsfiddle:

http://jsfiddle.net/tqs6g/1/

下面是我寫的發送信息給自己的PHP(我知道這是不是很優雅的編碼,但我只是想要得到的東西先工作,然後我打算用陣列等):

我在這個例子中使用
<?php 

if (isset($_POST['brandname']) && isset($_POST['firstname']) && isset($_POST['lastname']) && isset($_POST['email']) && isset($_POST['website'])){ 
    $brandname = $_POST['brandname']; 
    $firstname = $_POST['firstname']; 
    $lastname = $_POST['lastname']; 
    $email = $_POST['email']; 
    $website = $_POST['website']; 

    if(!empty($brandname) && !empty($firstname) && !empty($lastname) && !empty($email)){ 
     $to = '[email protected]'; 
     $subject = 'Submission Form'; 
     $body = $firstname; 
     $headers = 'From: '.$email; 

     if (@mail($to, $subject, $body, $headers)){ 
      echo 'Yeah yeah'; 
      }else{ 
       echo 'yeah no.'; 
       } 

     }else{ 
     echo 'Please fill out all required fields.'; 
     } 

    } 
?> 

電子郵件顯然不是我的電子郵件(我用我的代碼我真實的)。基本上會發生什麼是我填寫表單並點擊提交,它重新加載form.php頁面。我檢查了我的電子郵件,並沒有發生任何事情。如果我查看網站的源代碼,請選擇「是的」。顯示在代碼中(當它成功發送電子郵件時,它從哪裏迴應)。所以代碼似乎正常運行,但它不輸出任何東西。

我是否必須通過本地主機設置一些郵件服務器/功能?

我錯過了什麼?

+0

如果您在本地工作(例如使用XAMPP),則需要在'php.ini'中設置sendmail的路徑以發送電子郵件。這可能會有所幫助:http://www.codingforums.com/archive/index.php/t-77553.html – Quasdunk 2012-01-07 19:34:56

+0

您可以將錯誤轉爲警告或檢查日誌嗎? – mat 2012-01-07 19:36:32

+0

我的php.ini已經有:[郵件功能] ;僅適用於Win32。 SMTP = localhost smtp_port = 25。這是我應該看的線? – MillerMedia 2012-01-07 19:38:45

回答

0

你不需要在你的服務器上設置任何東西,它對我來說工作正常。

嘗試用mail代替@mailmail(...)總是適合我。

+1

[''''運算符'](http://thesmithfam.org/blog/2006/05/07/php-the-operator/)可以抑制錯誤消息。 '@ mail'和'mail'調用相同的功能。 – Alex 2012-01-07 19:27:46

+0

@H貝拉米我試過了,但它沒有改變任何東西。 – MillerMedia 2012-01-07 19:40:16