2013-07-22 41 views
0

我用php,html和css寫了一個代碼。這是提交後通過電子郵件收到的聯繫表單。提交時沒有錯誤,但我沒有收到電子郵件。我在這裏包含代碼。這是鏈接:http://complaintdesk.byethost15.com/contact.php。 另外我在這裏解釋代碼。如何解決電子郵件未收到的情況?

contact.php

<?php 
if(isset($_POST['submit'])){ 
    $name = $_POST['fullname']; 
    $branch = $_POST['branch']; 
    $usn = $_POST['usn']; 
    $sem = $_POST['sem']; 
    $email = $_POST['email']; 
    $subject = $_POST['subject']; 
    $description = $_POST['comment']; 

    $to = '[email protected]'; 

    $display = 'From:</br>Name: $name</br>USN: $usn</br>Branch: $branch</br>Semester: $sem</br>Email: $email</br></br>$description'; 
    mail($to,$subject,$display); 
    echo "<script>alert('Your Complaint has been succesfully submitted, We will contact you soon.')</script>"; 
}; 

?> 

和代碼我沒有包括休息...

+1

看起來像一個很好的設計。投訴直接進入黑洞。 –

+0

'「我沒有收到郵件」' - 郵件服務器和收件箱之間可能有任何問題。服務器是否主動拒絕該信息?它是否默默地忽略了這個信息?它是否無法將消息轉發到您的傳入郵件服務器?您的傳入郵件服務器是否過濾郵件?您的電子郵件客戶端是否會過濾郵件大量的事情可能會阻止你在收件箱中看到一封電子郵件,其中很少有與你的代碼有關的東西。當您調試時,SMTP服務器的響應是什麼? – David

+3

檢查傳出服務器上的郵件日誌以查看它是否已發送,然後檢查傳入服務器上的郵件日誌以查看它是否已收到。其中一個會告訴你什麼是。如果你真的檢查了郵件命令的返回值,看看它是否有效,它也許會有所幫助! – Anigel

回答

0

試試這個:

$to_address = "Your email address"; 
$subject = $_POST['subject']; 
$headers = "MIME-Version: 1.0\r\n"; 
$headers.= "Content-type: text/html; charset=iso-8859-1\r\n"; 
$headers.= "From: ".$email."\r\n"; 

if (mail($to_address,$subject,$description,$headers)){ 
    echo "Success"; 
} 
else{ 
    echo "<h2>Unable to submit the form, please recheck the details.</h2>" ; 
} 

更新:如果不工作,然後有可能是您電子郵件配置的錯誤。正如上面評論中的其他用戶所建議的那樣,您可能也需要查看該部分。這個答案是基於假設您的電子郵件服務器/ PHP配置正確。

+0

錯誤信息有點含糊不清,因爲它不太可能基於表單字段失敗,但是如果它返回成功/失敗的值如郵件,那麼你應該經常檢查它。 – Anigel

+0

任何人都可以點擊上面的網址... –

相關問題