2014-12-13 125 views
-1

我是的新手,希望編寫一個程序來接收表單中的信息並使用php郵件功能發送該信息。我正在使用XAMPP 5.5-19進行設置。我研究了一些關於如何讓這個程序運行但沒有成功的主題。當我看到我的phpinfo();記載以下內容:使用PHP郵件功能發送郵件XAMPP 5.5-19

SMTP = smtp.gmail.com
SMTP_PORT = 587
sendmail_path =/usr/sbin目錄/ sendmail的-t -i -F
sendmail_from =沒有價值

我的代碼

</head> 
<body> 
    <h3>Need More Information Contact Us!</h3> 
    <div> 
     <form method="post" action=""> 
      <label for="name">Name</label> 
      <div> 
       <input type="text" name="name" /> 
      </div> 
      <label for="tele">Number</label> 
      <div> 
       <input type="text" name="tele" /> 
      </div> 
      <label for="subject">Subject</label> 
      <div> 
       <textarea rows="5" cols="40" name="subject"></textarea> 
      </div> 
      <input type="submit" value="Submit" name="sub" /> 
     </form> 
     <?php 
      if(isset($_POST['sub'])) 
      { 
       $name = $_POST['name']; 
       $number = $_POST['tele']; 
       $subject = $_POST['subject']; 
       $to = '[email protected]'; 
       mail($to, $subject, $name,$number); 
      } 
     ?> 
    </div> 
</body> 

我知道這是一個反覆出現的話題,但我對我研究過的文章沒有好運。感謝大家提供意見和反饋。

回答

1

你在使用localhost嗎?

如果是,那麼SMTP在本地主機上不起作用,否則你的代碼是完美的。

+0

是的我在本地主機上工作我試圖重新配置我的php.ini以下鏈接建議從安東尼吉布斯。 – meddy 2014-12-13 18:16:39

+0

他們,SMTP不在本地主機上工作 – 2014-12-13 18:17:39

+0

有什麼可以做的,以解決SMTP問題?? – meddy 2014-12-13 18:21:02

1

把你的PHP部分放在任何html之前。這樣,如果您的用戶提交有效,您可以重定向頁面。

請參閱php標題。也查看網絡上的用戶數據驗證方法。基本規則,永遠不要信任用戶提交數據。

話雖如此,在您的表單中添加一個隱藏的字段,用於查看何時使用表單。

`<input type='hidden' name='sub' value='1'>` 

你的郵件功能基本上有三個部分,第4個是可選的。你可以用它來獲得真正的幻想。

mail(to,subject,message);

所以在你的代碼;

$msg = $name."\r\n"; 
$msg .= $number."\r\n"; 
mail($to, $subject, $msg); 

你可以驗證; $ mail_status = mail($ to,$ subject,$ msg); 如果($ mail_status) {做某事}` 其他{做到這一點時,錯誤}

上XAMPP,如果沒有錯誤,否則它將爲空,否則將做{動作},depnding你怎麼寫代碼

1

打開你的sendmail文件夾(/ usr/sbin/sendmail根據你的phpinfo)。 在sendmail.ini文件

; create debug log as debug.log (defaults to same directory as sendmail.exe) 
; uncomment to enable debugging 
debug_logfile=debug.log 

打開調試器做一個新的請求,並查看文件的debug.log說什麼。例如缺少smtp.google.com的身份驗證。

我還想指出,在全新安裝中,您必須更新php.ini才能使用sendmail.exe,但我想這已經由您的phpinfo來判斷了。

編輯:

可以肯定的,請檢查您的php.ini文件,找到下面這行:

sendmail_path = 

如果它在它的前面註釋掉了;,刪除;。 根據我剛剛閱讀的有關MAMP的sendmail的文章,您也可以嘗試在路徑後鍵入您的電子郵件地址。

例如:sendmail_path = /usr/sbin/sendmail -t -i -f [email protected]

另一件事,因爲你找不到sendmail.ini

是你的sendmail的文件夾中哪些文件?我相信sendmail腳本在MAMP上沒有文件擴展名。在WAMP中它的一個可執行程序(.exe

+0

我的XAMPP文件包含一個sendmail.php文件,但nat一個sendmail.ini文件應該什麼我做? – meddy 2014-12-13 19:00:23

+0

我更新了我的帖子,請閱讀並嘗試新的建議:) – KEK 2014-12-14 10:29:52