Shakoladka

PHP MAIL

В теме 4 сообщения

Всем добра, не работает восстановление пароля, при попытке восстановить пароль через почту, не отправляется письмо, но пароль при этом в mysql изменяется с md5

Спойлер

case 'lost':
    
    if (isset($_SESSION['user_id'])) 
    {
      echo 'Пароль смените в профиле';
      break;
    }       
        
    $obEngine->addTitleHtml('Восстановление пароля');  
    
    if (isset($_POST['login']))
    {
      if (isset($_POST['captcha'])) 
      {        
        if ($_POST['captcha'] != $_SESSION['image_captcha'])
        {
          echo 'Неверно выбрана картинка';
          unset($_SESSION['image_captcha']);
          break;
        }           
      }
      else
      {
        echo 'Неверно выбрана картинка';
        unset($_SESSION['image_captcha']);
        break;
      }
      
      $login = filter_var($_POST['login'], FILTER_SANITIZE_STRING); 
    
      $email = filter_var($_POST['email'], FILTER_SANITIZE_STRING); 
      
      $query = $mysqli->query("SELECT `id`, `login`, `email`, `password` FROM `".PREFIX."_users` WHERE `login` = '".$login."' || `email` = '".$email."' LIMIT 1");    
  
      if (!$query->num_rows)
      {
        echo 'Пользователь с такими данными не существует';
        break;
      }
      else
      {
        $res = $query->fetch_assoc();
        
        $password = genPassword(8);
        
        $md5_password = md5(md5($password.HASH_MD5));
        
        $mysqli->query("UPDATE `".PREFIX."_users` SET `password` = '".$md5_password."' WHERE `id` = '".$res['id']."'");      
        
        $headers = "From: ".$obEngine->getConfig('site_name')." <".$obEngine->getConfig('site_name').">\n";
        $headers = $headers."Content-type: text/html; charset=\"utf-8\"\n";
        $headers = $headers."Return-path: <".$obEngine->getConfig('site_email').">\n";
        $message = 'Здравствуйте, <b>'.$res['login'].'</b>!<br>
          Вы сделали запрос на восстановление пароля в сервисе интернет-рекламы '.$obEngine->getConfig('site_name').'.<br><br>
          Данные для входа на сайт: <br>
          Логин: <b>'.$res['login'].'</b><br>
          Пароль: <b>'.$password.'</b><br>
          <br><br>
          --<br>
          С наилучшими пожеланиями,<br> Администрация '.$obEngine->getConfig('site_name').''."\n";
        $subject = 'Восстановление пароля от '.$obEngine->getConfig('site_name').'';
        mail($res['email'], $subject, $message, $headers);
        
        unset($_SESSION['image_captcha']);
        
        echo '<h1>Пароль выслан</h1>';
        
        break;
      }
  
      unset($_SESSION['image_captcha']);
    }    
    ?>
    <script src="js/jquery.captcha.js" type="text/javascript"></script> 
    <div class="main">
     <div class="m_left">
      <div class="m_title">Восстановление пароля</div>
      <form name="form3" action="?mode=lost" method="post" onsubmit="return validate3();">
       <div class="m_l">
    <div class="m_name">Логин:</div>
    <div class="m_pole"><input type="text" name="login" maxlength="25" class="tt"></div>
       </div>
       <div class="m_l">
    <div class="m_name"><span style="font-weight: normal;">или</span> Email:</div>
    <div class="m_pole"><input type="text" maxlength="40" value="" name="email" class="tt"></div>
       </div>
       <div class="m_l" style="line-height: 30px;"><div id="capcha"><?php include('captcha.php'); ?></div></div>     
       <div class="m_l"><button style="float:right;">Восстановить</button></div>
      </form>
     </div>
     <?php include 'module/user_menu.php'; ?>  
    </div>
    <?php
        
    break;    

    default:
    
    header($_SERVER['SERVER_PROTOCOL'] . ' 404 Not Found', true);  
    echo '<h1>Страница не найдена</h1>';    
        
    break;
  }
}
?>
</div>

Подскажите куда копать?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

На Roundcube работает приходит письмо.

На Mail.ru не приходит, в спаме тоже нету

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Значит письмо отклоняют скорее всего фильтры mail.ru. Насколько помню, мейл ру всегда был чувствителен к тому, чтобы у домена с которого отправляется почта, был настроен SPF, DKIM, DMARC записи. Если их нет, то на большинство почтовых сервисов почта доходить не будет, либо будет в "Спам" попадать. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

@Shakoladka пиши в ТП хоста. И проверь на антиспам сайте с обезьянами. Была похожая история. Починил, но письма в спам уходят (это приемлемо на этапе разработки)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!


Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.


Войти

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу