2016-12-05 64 views
1

我有幾個關於設置PHP郵件程序的問題.... 我的第一個問題是,PHP文件/文件夾是否與我所有其他人(.html,css,和JS)?設置PHP郵件程序

如果是這樣的話,我確實需要一些幫助設置此功能,或者我開始有點失去了...我的PHP文件如下:

<?php 

    $emailTo = "[email protected]"; // Enter your email for feedbacks here 

    $headers = "MIME-Version: 1.0\r\n"; 
    $headers .= "Content-type: text/html; charset=utf-8\r\n"; 
    $headers .= "From: ".$_POST['rsEmail']."\r\n"; 

    if (!isset($_POST['rsSubject'])) { 
     $subject = "Contact Form Message"; // Enter your subject here 
    } else { 
     $subject = $_POST['rsSubject']; 
    } 

    reset($_POST); 

    $body = ""; 
    $body .= "<p><b>Name: </b>".$_POST['rsName']."</p>"; 
    $body .= "<p><b>Email: </b>".$_POST['rsEmail']."</p>"; 
    $body .= "<p><b>Subject: </b>".$subject."</p>"; 
    $body .= "<p><b>Message: </b>".$_POST['rsMessage']."</p>"; 

    if(mail($emailTo, $subject, $body, $headers)){ 
     $mail_sent = true; 
    } else { 
     $mail_sent = false; 
    } 
    if(!isset($resp)){ 
     echo json_encode($mail_sent); 
    } 
?> 

而且我相信相應的JavaScript我一起它是:

function isValidEmail(emailAddress) { 
     var pattern = /^([a-z\d!#$%&'*+\-\/=?^_`{|}~\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+(\.[a-z\d!#$%&'*+\-\/=?^_`{|}~\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+)*|"((([ \t]*\r\n)?[ \t]+)?([\x01-\x08\x0b\x0c\x0e-\x1f\x7f\x21\x23-\x5b\x5d-\x7e\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]|\\[\x01-\x09\x0b\x0c\x0d-\x7f\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))*(([ \t]*\r\n)?[ \t]+)?")@(([a-z\d\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]|[a-z\d\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF][a-z\d\-._~\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]*[a-z\d\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])\.)+([a-z\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]|[a-z\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF][a-z\d\-._~\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]*[a-z\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])\.?$/i; 
     return pattern.test(emailAddress); 
    }; 

謝謝你們的幫助!意思是很多:)

編輯:當表格填寫正確時,它說:「恭喜你的消息已發送」 - 這意味着它是一個有效的表單提交,我從來沒有真正收到電子郵件。

編輯2:我去我FileZilla的嘗試和編輯/從那裏查看js文件,我得到以下錯誤:enter image description here

不能完全確定什麼是需要(一種新望這一切)。而且,這裏是我的形式:

     <form class="rsForm" action="php/mailsender.php" method="post"> 
          <div class="input-field"> 
           <label>Name</label> 
           <input type="text" name="rsName" value=""> 
           <span class="line"></span> 
          </div> 

          <div class="input-field"> 
           <label>Email</label> 
           <input type="email" name="rsEmail" value=""> 
           <span class="line"></span> 
          </div> 

          <div class="input-field"> 
           <label>Subject</label> 
           <input type="text" name="rsSubject" value=""> 
           <span class="line"></span> 
          </div> 

          <div class="input-field"> 
           <label>Message</label> 
           <textarea rows="4" name="rsMessage"></textarea> 
           <span class="line"></span> 
          </div> 

          <span class="btn-outer btn-primary-outer ripple"> 
           <input class="rsFormSubmit btn btn-lg btn-primary" type="submit" value="Send"> 
          </span> 
         </form> 
+0

你的'html'看起來如何? **從不**依靠'javascript'驗證任何數據,因爲這是基於客戶端的,並且可能受到用戶的影響。在這種情況下,你如何處理「表單」提交很重要。 – Nytrix

+0

'action'部分表示您將'input'數據發送到文件夾'php'和文件'mailsender.php'。所以,你上面顯示的代碼應該在該文件和文件夾中。如果確實如此,請看@AdrianHiggins給出的答案。一個快速的調試技巧也可以傳播隨機消息,並查看它不再發生的地方。 – Nytrix

+0

是的,我有一個php文件夾與目錄中的確切文件(上面)。所以這似乎是正確設置... –

回答

-1

所以,除非你的表格是一個已經被網絡託管服務託管的網站,或者您有類似MAMP PRO測試本地服務器上的網頁(PRO,因爲它附帶Postfix),您將不會收到電子郵件。

對於PHP實際發送電子郵件給你,你需要像Postfix這樣的MTA(郵件傳輸代理)。當您託管您的網站時,他們會自動爲您在其服務器上設置(通常)一個。如果您在本地進行測試,比如將文件路徑放入瀏覽器中,則您的本地主機未使用MTA進行設置,因此無法獲取電子郵件。

退房Test emails locally with mamp瞭解如何測試您的電子郵件表單,而無需在專業服務器上設置您的網站。

如果您對此有任何疑問,請在評論中標記我!

PS。這是人們不知道的一個非常普遍的問題。它也讓我第一次,這就是爲什麼我買了MAMP PRO測試網站表格。

+0

舉例來說,我使用的是goDaddy和cPanel ......他們顯然爲您設置了某種郵件系統。我不記得當我創建我的網站時,我做了什麼來設置它。我會把php文件夾/文件放在同一個目錄下嗎?還是它被移到其他地方? –

+0

隨着'goDaddy'它已經爲你設置,比他說的應該沒問題。我的意思是,你實際上已經把你自己的電子郵件放進'$ emailTo'變量中了嗎? – Nytrix

+0

@Nytrix是的,我把我真正的電子郵件 - 我沒有足夠的聲譽在聊天鏈接聊天哈哈... –