2010-06-17 121 views
0

我試圖在wordpress站點中使用PHP郵件()發送電子郵件。 我創建了一個空頁http://www.exam-vision.com/request-flip-up-instructions其中的模板包含下面顯示的php代碼。當我發佈數據時,isset($ _REQUEST ['email'])爲false,而我可以在firebug中正確發佈數據。什麼可能是錯誤的?在wordpress中發送電子郵件

感謝

<?php 

if (isset($_REQUEST['email'])) 
//if "email" is filled out, send email 
{ 
    //send email 

    $email = $_REQUEST['email'] ; 
    $subject = $_REQUEST['subject'] ; 
    $message = $_REQUEST['message'] ; 
    mail("<someemail>", "Subject: $subject", 
    $message, "From: $email"); 
    echo "Thank you for using our mail form"; 
} 
else 
//if "email" is not filled out, display the form 
{ 
    echo "<form method='post' action='http://www.exam-vision.com/request-flip-up-instructions'> 
    Email: <input name='email' type='text' /><br /> 
    Subject: <input name='subject' type='text' /><br /> 
    Message:<br /> 
    <textarea name='message' rows='15' cols='40'> 
    </textarea><br /> 
    <input type='submit' /> 
</form>"; 
} 
?> 

回答

2

而不是使用$請求,只需使用$ _ POST,因爲頁張貼到自身,一定要檢查是否it's set或者如果它empty。而不是使用PHP的mail()函數使用WordPress的'wp_mail函數。

或者,您也可以選擇使用插件來完成此操作。 CformsIIGravity Forms(高級插件)只是一些例子。我使用了CformsII,它的功能非常豐富,功能豐富,免費插件。

+0

我已經用POST替換了REQUEST,但它仍然不起作用。 $ _POST ['email']是空的,而我可以在POST數據中看到它在螢火蟲... – jul 2010-06-17 12:51:19

+0

我不知道爲什麼這不能正常工作,但我會重複hsatterwhite關於插件的說法。除了CformsII和Gravity Forms之外,還有Contact Form 7,強大的,以及我開發的名爲ONW Simple Contact Form的。如果您想要一個非常靈活的良好聯繫表單,請使用聯繫表單7.如果您想要一個可以直接使用的表單,請使用ONW簡單聯繫表單。 :) – 2010-06-17 13:11:42

+0

刪除您正在檢查$ _REQUEST或$ _POST變量是否設置爲空的邏輯。在$ _REQUESST $ _POST上嘗試var_dump(),並且如果你看到你的數據,就從那裏開始構建它。 wp_mail()應該工作得很好,因爲它基於郵件() – hsatterwhite 2010-06-17 16:03:36

0

兩件事情:使用當前的形式,您應該1)您的主機檢查,看看是否需要使用SMTP和驗證,而不是使用PHP的mail,和2),淨化你的輸入:PHP Secure E-mail.

如果你想使用WP插件來代替郵件 - 這與構建你自己的表單有很多優點 - 你可能還需要使用WP Mail SMTP « WordPress Plugins來使用smtp而不是php郵件,因爲你的主機可能會限制使用php郵件。

+0

我沒有使用插件,但由於它沒有工作,我試圖做一個簡單的PHP郵件。郵件功能正常工作,但郵件數據未收到。我發佈了一個關於這個問題的新問題。謝謝 – jul 2010-06-17 15:40:20

-1

嘗試改變

<input type="email" name="email" /> 

喜歡的東西

<input type="email" name="my_theme_email" /> 

做同樣與您的所有領域,它聽起來就像一些名字發送表單數據時與WordPress保留。我遇到了同樣的問題,我就這樣解決了。之後使用POST方法,也許創建一個do_action()添加字段驗證。並使用wp_mail發送電子郵件,也$_POST['']