2011-10-24 125 views
-1

我正在創建一個用戶註冊表單,並且在他們填寫完所有信息並提交表單後,將所有數據都放入我的數據庫表中。成功註冊後確認電子郵件將發送到用戶在註冊表單中提供的用戶電子郵件地址。但電子郵件不是sending.I我得到如下所示的錯誤消息:發送確認電子郵件時發生錯誤

Warning: mail() [function.mail]: Failed to connect to mailserver at "localhost" port   
    25, verify your "SMTP" and "smtp_port" setting in 
    php.ini or use ini_set() in D:\wamp\www\boobloom\site\class.Utility.inc.php on line 25 
    Registration Successful. 

這是我用我的登記表功能:

if(mysql_query($insert_query)){ 
    Utility::sendRegConfirmEmail(mysql_insert_id()); 
    echo $message = "Registration Successful."; 
}else{ 
    echo $message = "Registration not Successful."; 
} 

和:

static function sendRegConfirmEmail($id){ 
    $query = "SELECT * FROM users WHERE id = '".$id."'"; 
    $result = mysql_query($query) or die(mysql_error()); 
    $row = mysql_fetch_assoc($result); 
    $to = $row['email']; 
      $confirmationcode = $row['confirmation_code']; 
    $tVar = time(); 
    $confirmLink = HTTP_PATH.'registrationConfirm/'.md5($tVar).'/'.$to.'/'.$confirmationcode.'/'.md5($to); 
    // to fetch the email template 
    $queryET = "SELECT * FROM emailtemplates WHERE type = 'registration_confirmation'"; 
    $resultET = mysql_query($queryET) or die(mysql_error()); 
    $rowET = mysql_fetch_assoc($resultET); 
    $subject = $rowET['subject']; 
    $toRepArray = array('[!Name!]','[!email!]','[!PASSWORD!]','[!activation_code!]','[!Link!]'); 
    $fromRepArray = array($to,$to,$row['password'],$confirmationcode,$confirmLink); 
    $message = str_replace($toRepArray,$fromRepArray,$rowET['message']); 
    $headers = "MIME-Version: 1.0\r\n"; 
    $headers .= "Content-type: text/html; charset=iso-8859-1\r\n"; 
    $headers .= "From: boobloom.com <".SITE_MAIL.">\r\n"; 
      mail($to, $subject, $message, $headers); 

} 
+0

如需瞭解這種類型的問題 –

+0

omnath的服務器管理員,看來你,因爲這告訴你什麼沒讀過錯誤信息問題是,它與用戶電子郵件ID無關。其次,你沒有告訴我們代碼所在的文件,因爲錯誤指定了class.Utility.inc.php,但是我們可以查看與我們所知的任何代碼無關的代碼。 – Ryan

回答

0

這個錯誤是來自你的smtp設置,而不是你的代碼。你應該確認你的smtp設置正確。

嘗試使用

echo ini_get("SMTP"); 
echo ini_get("smtp_port"); 

爲了讓您的SMTP詳細信息。 檢查你的php.ini

它應該在這個還挺格式

[mail function] 
; For Win32 only. 
SMTP = localhost 
smtp_port = 25 
+0

雅我得到了相同的你寫... localhost25 – omnath

+0

@omnath它現在工作? – Mob

+0

現在,我使用我的網站管理面板。註冊成功的消息是come.any錯誤和警告的不顯示,但電子郵件不會在地址... – omnath

相關問題