ошибка при отправке письма с подтверждением - PullRequest
0 голосов
/ 24 октября 2011

Я создаю форму регистрации пользователя, и после того, как они заполняют всю информацию и отправляют форму, все данные попадают в мою таблицу базы данных.После успешной регистрации на адрес электронной почты пользователя отправляется электронное письмо с подтверждением, указанное пользователем в регистрационной форме.Но электронное письмо не отправляется. Я получаю сообщение об ошибке, показанное ниже:

    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);

}

1 Ответ

0 голосов
/ 24 октября 2011

Эта ошибка связана с настройкой SMTP, а не с вашим кодом. Вы должны убедиться, что ваш SMTP настроен правильно.

Попробуйте использовать

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

Чтобы получить данные SMTP. Проверьте свой php.ini

Это должно быть в таком формате

[mail function]
; For Win32 only.
SMTP = localhost
smtp_port = 25
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...