2013-05-06 70 views
0

我是一個begginer,所以請告知。 事實:嘗試使用梨的郵件,並使其工作。我安裝了梨,郵件和網絡。我使用Apache 2.2.22,PHP 5.3.13,Windows 7。整個系統安裝在我的筆記本電腦上。這有什麼區別嗎?另外,如果我的apache支持smtp,我不知道。我用this爲指導。梨郵件,設置和使用

這是我的代碼(嘗試創建一個簡單的 「忘記密碼」,未完成)

 <?php 
    error_reporting(E_ALL); 
//connect to db 
    include_once('connection.php'); 
    include('Mail.php'); 
    //came from login form 
    $logf = $_POST['logf']; 

//query according to logf  
    $stmt = $dbh->prepare("SELECT mail FROM table where usrnm = :nm"); 
    $stmt->bindParam(':nm', $nm, PDO::PARAM_STR); 
    $nm=$logf; 

    $data=array('nm'=>$nm); 
    $result=$stmt->execute($data); 

     $d=0; 
     while ($row = $stmt->fetch()) { 
     $be[$d]=$row['mail']; 
     $d++;} 


     $mes="ελα"; 
      //mail came from query 
     $email = $be[0]; 
     $message = $mes; 

     $from = 'Website Enquiry '; 
     $to = "Hammy Goonan "; 
     $subject = "ανακτηση"; 
     $body = $message; 
     $host = "localhost"; 
     $headers = array ('From' => $from, 
      'To' => $to, 
      'Subject' => $subject 
     ); 
     $smtp = Mail::factory('smtp', 
      array ('host' => $host, 
       'auth' => false, 
       'port' => '25' 
      ) 
     ); 
     $mail = $smtp->send($to, $headers, $body); 
     if (PEAR::isError($mail)) {echo($mail->getMessage());} 
     else {echo("Message successfully sent!");} 

    ?> 

我得到這個錯誤:

無法連接到本地主機:25 [SMTP :無法連接套接字: , 。 (代碼:-1,迴應:)]

Plese幫助,我讀過教程,我不知道如何解決這個問題。其實,我不知道從哪裏開始。

謝謝。

編輯 我也嘗試過使用sendmail的this(例如部分),但我不明白以下

$params['sendmail_path'] = '/usr/lib/sendmail'; 

的Sendmail還需要SMTP erver?

+1

你有在筆記本電腦上運行的郵件服務器嗎? – ceejayoz 2013-05-06 18:20:39

+0

由於您指定了「localhost」,您仍然需要本地運行的SMTP服務器。 – 2013-05-06 18:25:31

+0

@ceejayoz不,沒有。只需apache,php,postgreSQL。哦,geoserver – slevin 2013-05-06 18:25:53

回答

1

如果要使用localhost作爲郵件服務器的地址,localhost必須已安裝郵件服務器

您需要安裝郵件服務器(有一些面向開發的郵件服務器,如Devnull)或(通常更簡單),只需將其指向您的ISP的SMTP服務器用於發送目的。

+0

@ ceejayoz你建議什麼(免費)郵件服務器? – slevin 2013-05-06 19:11:29

+0

@slevin我在我的問題中鏈接到一個。 – ceejayoz 2013-05-06 19:14:01

1

如果您打算使用localhost作爲地址,您需要確保localhost(您的筆記本電腦)安裝了郵件服務器。

或者,您可以使用SendGrid等電子郵件發送服務並使用其SMTP服務器或作爲另一個答案提示,將其指向您的ISP的SMTP服務器。

+0

@ ajtrichards我剛剛編輯了我的問題... – slevin 2013-05-06 18:37:18

+1

它說你在你的問題中使用的窗口 - sendmail不會像windows那樣配置。 '/ usr/lib/sendmail'是針對Linux用戶的。 – ajtrichards 2013-05-06 18:40:28

+0

@ ajtrichards你建議什麼(免費)郵件服務器? – slevin 2013-05-06 19:11:10