2014-03-07 105 views
0

我無法設置此電子郵件的形式正常工作PHP電子郵件形式不工作

我有這個contact.html:

<form mehtod="post" action="contact.php"> 
<hr /> 

<div class="row"> 
    <div class="large-12 columns"> 
    <label>Name 
     <input type="text" name="cf_name" placeholder="Name" /> 
    </label> 
</div> 
</div> 

<div class="row"> 
    <div class="large-12 columns"> 
     <label>Email 
    <input type="text" name="cf_email" placeholder="Email" /> 
    </label> 
</div> 
</div> 

<div class="row"> 
<div class="large-12 columns"> 
    <label>Your message 
    <textarea name="cf_message" placeholder="Your message"></textarea> 
    </label> 
</div> 
</div> 

<input class="button" type="reset" value="Clear"> 
<input class="button success expand" type="submit" value="Submit"> 

</form> 

這contact.php:

<?php 
$field_name = $_POST['cf_name']; 
$field_email = $_POST['cf_email']; 
$field_message = $_POST['cf_message']; 

$mail_to = '[email protected]'; 
$subject = 'Personal Website Message from '.$field_name; 

$body_message = 'From: '.$field_name."\n"; 
$body_message .= 'E-mail: '.$field_email."\n"; 
$body_message .= 'Message: '.$field_message; 

$headers = 'From: '.$field_email."\r\n"; 
$headers .= 'Reply-To: '.$field_email."\r\n"; 

$mail_status = mail($mail_to, $subject, $body_message, $headers); 

if ($mail_status) { ?> 
<script language="javascript" type="text/javascript"> 
    alert('Thank you for the message. I will contact you shortly.'); 
    window.location = 'contact.html'; 
</script> 
<?php 
} 
else { ?> 
<script language="javascript" type="text/javascript"> 
    alert('Message failed. There is a problem with your message, if keep aving trouble   click on the Email me button above.'); 
    window.location = 'contact.html'; 
</script> 
<?php 
} 
?> 

但是,當我上傳並測試它時,爲什麼沒有發送到我的電子郵件?對我來說,一切似乎都是正確的...

+0

誰託管你的網站?許多免費的網絡主機不允許PHP郵件,但不會輸出錯誤消息。 –

+0

使用迅捷的郵件或PHP郵件更好的錯誤處理..如果沒有工作,然後使用SMTP發送郵件 – srs

回答

0

您的郵件客戶端可能不允許未經授權發送電子郵件。不幸的是PHP的郵件功能不支持用戶名+密碼授權,所以你必須尋找第三方擴展。

+0

這很奇怪,我已經下載這個PHP代碼從互聯網和與它一起工作的.html代碼它工作正常,但在我將它與我的html代碼關聯後,它停止工作,並且在點擊提交按鈕後,javascript代碼運行,因此它應該表示電子郵件已發送... – jbernardo

+0

看看「from」屬性。你爲什麼期望這個工作?您不能從任何您想要的電子郵件地址發送電子郵件。您必須將「發件人」更改爲實際允許您這樣做的電子郵件客戶端。作爲一個例子,你可以使用谷歌的電子郵件地址作爲主機:http://stackoverflow.com/questions/712392/send-email-using-gmail-smtp-server-from-php-page –

+0

我正在使用郵件()功能從PHP,它應該在哪裏有一個「從」屬性? – jbernardo

0

請檢查form元素中'method'屬性的拼寫。

您提供的PHP代碼指定$ _POST作爲包含與表單相關的數據的變量。

你的拼寫錯誤導致服務器使用默認的「獲得」的方法後的數據(參考,見here

校正開始標記下面要解決這個問題:

<form method="post" action="contact.php">