2013-09-28 122 views
3

我嘗試設置email.html和action.php,以便有人可以從網站發送電子郵件。這裏是email.html代碼未收到來自PHP郵件()方法的電子郵件

<form action="./action.php" method="post"> 
    <p>Your Name</p> 
    <p><input type="text" name="name" /></p> 
    <p>Email</p> 
    <p><input type="text" name="email" /></p> 
    <p>Services</p> 
    <p><input type="text" name="service" /></p> 
    <p>Requests</p> 
    <p><textarea rows="8" cols="32" name="comment"></textarea></p> 
    <p><input type="submit" value="Send" /></p> 
</form> 

在action.php的我有

<?php 
    $to = "[email protected]"; 
    $subject = "Test mail"; 
    $message = "Hello! This is a simple email message."; 
    $from = "[email protected]"; 
    $headers = "From:" . $from; 
    mail($to,$subject,$message,$headers); 
    echo "Mail Sent."; 
?> 

在email.html輸入的信息成功加載到action.php的,但沒有什麼是我的Outlook收件箱接收從電子郵件方法。我錯過了什麼嗎?

+0

你一味地認爲電子郵件已被髮送。您需要檢查'mail'的返回值以檢查它是否實際發送:'if(mail(...)){// mail sent}'。 –

+1

您的託管機器上是否有一個活動的電子郵件發件人,如sendmail或PHPMailer? –

+1

您的系統上是否安裝了SMTP服務器? – aaron

回答

6

首先檢查返回值mail以查看郵件是否被SMTP服務器接受。

此外,根據Namecheap的文檔,your From address is invalid

只有在我們的服務器上託管的域可用於'From' 字段中。任何未與我們託管的網域都無法添加到'From' 字段。我們必須採取這項措施,以防止使用 論壇,留言簿和聯繫表單腳本發送垃圾郵件。爲使您的網站腳本 正常工作,您應該將「發件人」字段設置爲在您的cPanel中創建了 的電子郵件帳戶。

即使您的託管公司允許這樣做,您也不應該使用非Gmail服務器發送@ gmail.com郵件。在接收端通常會使用blocked by SPF等反垃圾郵件措施。

+0

如何在我的cPanel中將'From'字段設置爲電子郵件帳戶? –

1

首先檢查郵件的結果。 你也應該檢查php錯誤日誌文件。

當您的郵件真的出去時,使用有效的發件人電子郵件,您可以從接收郵件服務器中彈出。

別忘了,有很多反垃圾郵件技術的。 最重要的是,你尊重並知道SPF是如何工作的。 這是最失敗的一個,網站不會發送沒有到達收件人的電子郵件。

0

好吧,狠狠地砸了我的頭..只是爲了意識到他們正在我的「$ to」電子郵件ID的垃圾郵件文件夾中。同時檢查你的身邊。

相關問題