2012-10-22 81 views
3

好吧,我是新來的PHP編碼,並正在工作的形式郵件的PHP(表單誰的內容被郵寄到一個電子郵件地址)的代碼工作正常。現在我想知道是否有辦法通知訪客郵件的成功或失敗。 (動態添加一行,其中提到「成功」或「失敗後重試」的表單頁面希望我已經足夠清晰php郵件通知

下面的代碼

<?php 

    $name = $_POST["name"]; 

    $company = $_POST["company"]; 

    $email = $_POST["email"]; 

    $contact =$_POST["contact"]; 

    $require = $_POST["requirement"]; 


    $message = "Name :".$name."\n"."Company :".$company."\n"."Email id".$email."\n"."Contact no :".$contact."\n"."Requirement : ".$require; 

    $subject ="Subject Matter Here"; 

    $to = "[email protected]"; 

    if(mail($to, $subject,$message)){ 
echo "We Received Your enquiry, We'll get back to you soon"; 
    } 
     else{ 
echo "there were some errors sending enquiry, please try again"; 
    } 




     ?> 
+0

表格如何發佈?發送到不同的頁面? AJAX? – JNF

+0

那麼有一個HTML文件的形式與行動設置爲此腳本...現在我想動態更新html – TDsouza

+0

感謝所有的幫助,我解決了一個小問題的JavaScript(不完全是我在找什麼,但是一個很好的折衷) 基本上我在php代碼執行時調用javascript,腳本處理其餘 – TDsouza

回答

3
$send = mail($to, $subject, $message); 

if(!$send){ 
    echo 'Failed to send!'; 
} 

mail功能:

返回true如果郵件被成功接受交付,FALSE 否則。

+0

這隻會確認服務器沒有完全錯誤配置。沒有可行的方法來確定電子郵件是否到達收件人。 –

+0

@GeraldSchneider我知道這一點(大多數在各種託管平臺上使用過mail()函數的人都知道,沒有什麼可以肯定的)。因此,我包含了PHP文檔的引用。 –

+0

是的是我試過這個..問題是點擊「提交」後,它進入一個空白頁面的文本那裏..我想要的是一條線動態出現在同一頁面上的窗體本身。感謝您的幫助,雖然.. – TDsouza

0

郵件函數返回一個布爾值,表示成功:

$result = mail(...) 
if ($result) { 
    echo 'Success'; 
} else { 
    echo 'Failure try again'; 
} 

如果郵件()返回false,你肯定知道的電子郵件不會被髮送。如果mail()返回true,那麼您的郵件服務器已接受電子郵件消息,但仍可能無法發送。您的郵件服務器會嘗試將其發送到其他郵件服務器,這可能會拒絕該郵件。您將收到退信消息,但因爲這不會立即發生,您無法在表單上顯示結果。

如果您希望確保電子郵件已發送,您必須自己連接到目標主機。獲取域的MX記錄,連接到STMP服務器並將其直接發送到目標服務器。

0

你可以嘗試尋找herehere

,並使用它,像這樣:

if (!mail(...)) {// Reschedule for later try or panic appropriately!} 

mail() returns TRUE if the mail was successfully accepted for delivery, FALSE otherwise.

重要的是要注意,只是因爲郵件被接受交付,它並不意味着郵件實際上會到達預定的目的地。