Sign in to follow this  
Followers 0

PHP MAIL

4 posts in this topic

Всем добра, не работает восстановление пароля, при попытке восстановить пароль через почту, не отправляется письмо, но пароль при этом в 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>

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

Share this post


Link to post
Share on other sites

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

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now
Sign in to follow this  
Followers 0

  • Recently Browsing   0 members

    No registered users viewing this page.