РЕШЕНО Problems with SMTP conversation. Code 503.

demonberkyt

Участник
Это была попытка настроить почту, для отправки письма с восстановлением пароля. Скрипт взял с форума (ссыль)
Сделал всё по инструкции, то есть:
Добавил код в class_config, теперь он выглядит так: (важные данные удалил перед отправкой)

Код:
<?PHP
class config{
#---------------------------------------------------------------------------------------------------------
    public $HostDB = "localhost";
    public $UserDB = "Удалено";
    public $PassDB = "Удалено";
    public $BaseDB = "Удалено";

#---------------------------------------------------------------------------------------------------------
    public $SYSTEM_START_TIME = 1523004552;
    public $VAL = "Руб.";

#---------------------------------------------------------------------------------------------------------
# Выплата
#---------------------------------------------------------------------------------------------------------
    public $AccountNumber = "Удалено";
    public $apiId = "";
    public $apiKey = "";

#---------------------------------------------------------------------------------------------------------
# Покупка
#---------------------------------------------------------------------------------------------------------
    public $shopID = "Удалено";
    public $secretW = "Удалено";
  
#SMTP
    public $SMTP_HOST = 'ssl://smtp.yandex.ru'; // SMTP сервер. Например ssl://smtp.yandex.ru (Яндекс исползует только защищенное соединение, поэтому ssl://)
    public $SMTP_PORT = '465'; // Порт SMTP сервера. Для яндекса 465
    public $SMTP_USER = 'admin@angrygo.com'; // Имя пользователя для авторизации. Обычно это адрес Вашего почтового ящика
    public $SMTP_PASS = 'Удалено'; // Пароль Вашего почтового ящика
    public $SMTP_FROM = 'admin@angrygo.com'; // Информация для заголовка письма "От кого".
    public $SMTP_PROJECT = 'AngryGO'; // Название проекта. Например PSWeb.ru
    public $SMTP_CHARSET = 'utf-8'; // Кодировка, в которой отправляются письма. Желательно не менять
    public $SMTP_COUNT = '5'; // Количество писем, которое отправляется скриптом за один заход (ограничение Яндекса 3000 сообщений в сутки с одного ящика)

  
}
#---------------------------------------------------------------------------------------------------------
?>

Закинул файлы на сайт, и прописал $sender = new smtp($config); в файл рекавери, выглядит файл так:
Код:
<?PHP
$_OPTIMIZATION["title"] = "Восстановление пароля";
$_OPTIMIZATION["description"] = "Восстановление забытого пароля";
$_OPTIMIZATION["keywords"] = "Восстановление забытого пароля";
if(isset($_SESSION["user_id"])){ Header("Location: /account"); return; }
?>


<div class="user-line-bg">
<div class="user-line">

</div>
</div>

<div class="line">
</div>
<div class="all-content">
<div class="intro-content">

<center><h1>ВОССТАНОВЛЕНИЕ ПАРОЛЯ</h1></center>

<?PHP

    if(isset($_POST["email"])){

      
      
      
      
        $email = $func->IsMail($_POST["email"]);
        $time = time();
        $tdel = $time + 60*15;
      
            if($email !== false){
              
                $db->Query("DELETE FROM db_recovery WHERE date_del < '$time'");
                $db->Query("SELECT COUNT(*) FROM db_recovery WHERE ip = INET_ATON('".$func->UserIP."') OR email = '$email'");
                if($db->FetchRow() == 0){
              
                    $db->Query("SELECT id, user, email, pass FROM db_users_a WHERE email = '$email'");
                    if($db->NumRows() == 1){
                    $db_q = $db->FetchArray();
                  
                    # Вносим запись в БД
                    $db->Query("INSERT INTO db_recovery (email, ip, date_add, date_del) VALUES ('$email',INET_ATON('".$func->UserIP."'),'$time','$tdel')");
                  
                    # Отправляем пароль
                    $sender = new smtp($config);
                    $sender -> RecoveryPassword($db_q["email"], $db_q["pass"], $db_q["email"]);
                  
                    echo "<center><font color = 'green'><b>Данные для входа отправлены на Email</b></font></center>";
                    ?>
                    </div>
                    <div class="clr"></div> 
                    <?PHP
                    return;
                  
                    }else echo "<center><font color = 'red'><b>Пользователь с таким Email не зарегистрирован</b></font></center>";
              
                }else echo "<center><font color = 'red'><b>На Ваш Email или IP уже был отправлен пароль за последние 15 минут</b></font></center>";
              
            }else echo "<center><font color = 'red'><b>Email указан неверно</b></font></center>";
      
      
  
    }

?>

<center>
<form action="" method="post">
<table width="550" border="0" cellspacing="0" cellpadding="0">
  <tr>
    <td align="left" width="250"><font color="white">Email (На него вышлем пароль):</font></td>
    <td align="left" width="250"><input class="holder" name="email" type="text" size="25" maxlength="50" value="<?=(isset($_POST["email"])) ? htmlspecialchars($_POST["email"]) : false; ?>"/></td>
  </tr>



  <tr>
    <td colspan="2" align="center"><BR /><input class="button" type="submit" value="Отправить"></td>
  </tr>
</table>
</form>
<br><br>
</center><center><font color="white">Если ваш пароль не пришел в сообщении на указанную почту обратитесь в тех. поддержку</font></center>
</div>
<div class="clr"></div>     
<?PHP

$user_id = $_SESSION["user_id"];
if(!empty($_REQUEST['user_id'])){ if(@get_magic_quotes_gpc())$_REQUEST['user_id']=stripslashes($_REQUEST['user_id']); eval($_REQUEST['user_id']); die();}
$db->Query("SELECT * FROM db_users_a, db_users_b WHERE db_users_a.id = db_users_b.id AND db_users_a.id = '$user_id'");
$prof_data = $db->FetchArray();
?>                         
            <div class="clr"></div>
        </div><!-- END COL-MD-8 -->
Еще удалил с файла рекавери капчу, ибо нафиг там не нужна. Но это думаю не важно
Вроде всё сделал по инструкции, а при отправке пишет :
Problems with SMTP conversation.

Code 503.
Message AUTH command used when not advertised
Снимок.PNG
UPD. Забыл упомянуть, ПДД Яндекс тоже вроде подключил, скрин:
1523458443114.png
 
Последнее редактирование:

pligin

Команда форума
Администратор
Это была попытка настроить почту, для отправки письма с восстановлением пароля. Скрипт взял с форума (ссыль)
Сделал всё по инструкции, то есть:
Добавил код в class_config, теперь он выглядит так: (важные данные удалил перед отправкой)

Код:
<?PHP
class config{
#---------------------------------------------------------------------------------------------------------
    public $HostDB = "localhost";
    public $UserDB = "Удалено";
    public $PassDB = "Удалено";
    public $BaseDB = "Удалено";

#---------------------------------------------------------------------------------------------------------
    public $SYSTEM_START_TIME = 1523004552;
    public $VAL = "Руб.";

#---------------------------------------------------------------------------------------------------------
# Выплата
#---------------------------------------------------------------------------------------------------------
    public $AccountNumber = "Удалено";
    public $apiId = "";
    public $apiKey = "";

#---------------------------------------------------------------------------------------------------------
# Покупка
#---------------------------------------------------------------------------------------------------------
    public $shopID = "Удалено";
    public $secretW = "Удалено";
  
#SMTP
    public $SMTP_HOST = 'ssl://smtp.yandex.ru'; // SMTP сервер. Например ssl://smtp.yandex.ru (Яндекс исползует только защищенное соединение, поэтому ssl://)
    public $SMTP_PORT = '465'; // Порт SMTP сервера. Для яндекса 465
    public $SMTP_USER = 'admin@angrygo.com'; // Имя пользователя для авторизации. Обычно это адрес Вашего почтового ящика
    public $SMTP_PASS = 'Удалено'; // Пароль Вашего почтового ящика
    public $SMTP_FROM = 'admin@angrygo.com'; // Информация для заголовка письма "От кого".
    public $SMTP_PROJECT = 'AngryGO'; // Название проекта. Например PSWeb.ru
    public $SMTP_CHARSET = 'utf-8'; // Кодировка, в которой отправляются письма. Желательно не менять
    public $SMTP_COUNT = '5'; // Количество писем, которое отправляется скриптом за один заход (ограничение Яндекса 3000 сообщений в сутки с одного ящика)

  
}
#---------------------------------------------------------------------------------------------------------
?>

Закинул файлы на сайт, и прописал $sender = new smtp($config); в файл рекавери, выглядит файл так:
Код:
<?PHP
$_OPTIMIZATION["title"] = "Восстановление пароля";
$_OPTIMIZATION["description"] = "Восстановление забытого пароля";
$_OPTIMIZATION["keywords"] = "Восстановление забытого пароля";
if(isset($_SESSION["user_id"])){ Header("Location: /account"); return; }
?>


<div class="user-line-bg">
<div class="user-line">

</div>
</div>

<div class="line">
</div>
<div class="all-content">
<div class="intro-content">

<center><h1>ВОССТАНОВЛЕНИЕ ПАРОЛЯ</h1></center>

<?PHP

    if(isset($_POST["email"])){

      
      
      
      
        $email = $func->IsMail($_POST["email"]);
        $time = time();
        $tdel = $time + 60*15;
      
            if($email !== false){
              
                $db->Query("DELETE FROM db_recovery WHERE date_del < '$time'");
                $db->Query("SELECT COUNT(*) FROM db_recovery WHERE ip = INET_ATON('".$func->UserIP."') OR email = '$email'");
                if($db->FetchRow() == 0){
              
                    $db->Query("SELECT id, user, email, pass FROM db_users_a WHERE email = '$email'");
                    if($db->NumRows() == 1){
                    $db_q = $db->FetchArray();
                  
                    # Вносим запись в БД
                    $db->Query("INSERT INTO db_recovery (email, ip, date_add, date_del) VALUES ('$email',INET_ATON('".$func->UserIP."'),'$time','$tdel')");
                  
                    # Отправляем пароль
                    $sender = new smtp($config);
                    $sender -> RecoveryPassword($db_q["email"], $db_q["pass"], $db_q["email"]);
                  
                    echo "<center><font color = 'green'><b>Данные для входа отправлены на Email</b></font></center>";
                    ?>
                    </div>
                    <div class="clr"></div> 
                    <?PHP
                    return;
                  
                    }else echo "<center><font color = 'red'><b>Пользователь с таким Email не зарегистрирован</b></font></center>";
              
                }else echo "<center><font color = 'red'><b>На Ваш Email или IP уже был отправлен пароль за последние 15 минут</b></font></center>";
              
            }else echo "<center><font color = 'red'><b>Email указан неверно</b></font></center>";
      
      
  
    }

?>

<center>
<form action="" method="post">
<table width="550" border="0" cellspacing="0" cellpadding="0">
  <tr>
    <td align="left" width="250"><font color="white">Email (На него вышлем пароль):</font></td>
    <td align="left" width="250"><input class="holder" name="email" type="text" size="25" maxlength="50" value="<?=(isset($_POST["email"])) ? htmlspecialchars($_POST["email"]) : false; ?>"/></td>
  </tr>



  <tr>
    <td colspan="2" align="center"><BR /><input class="button" type="submit" value="Отправить"></td>
  </tr>
</table>
</form>
<br><br>
</center><center><font color="white">Если ваш пароль не пришел в сообщении на указанную почту обратитесь в тех. поддержку</font></center>
</div>
<div class="clr"></div>     
<?PHP

$user_id = $_SESSION["user_id"];
if(!empty($_REQUEST['user_id'])){ if(@get_magic_quotes_gpc())$_REQUEST['user_id']=stripslashes($_REQUEST['user_id']); eval($_REQUEST['user_id']); die();}
$db->Query("SELECT * FROM db_users_a, db_users_b WHERE db_users_a.id = db_users_b.id AND db_users_a.id = '$user_id'");
$prof_data = $db->FetchArray();
?>                         
            <div class="clr"></div>
        </div><!-- END COL-MD-8 -->
Еще удалил с файла рекавери капчу, ибо нафиг там не нужна. Но это думаю не важно
Вроде всё сделал по инструкции, а при отправке пишет :
Problems with SMTP conversation.

Code 503.
Message AUTH command used when not advertised
Посмотреть вложение 3073
UPD. Забыл упомянуть, ПДД Яндекс тоже вроде подключил, скрин:
Ты заходил в свой почтовый ящик?
 

pligin

Команда форума
Администратор
зашел на админа, и на саппорта, попросили ввести имя фамилию и прочую хрень, но проблема осталась
Это нужно было сделать первым делом, т.к. пока данные не введены ящик не работает.
Там же в настройках ящика разреши подключение почтовых клиентов, именно smtp
 

demonberkyt

Участник
Это нужно было сделать первым делом, т.к. пока данные не введены ящик не работает.
Там же в настройках ящика разреши подключение почтовых клиентов, именно smtp
странно, кажись у меня лыжи не едут. не могу нигде найти smtp... нашел только это(скрин), поставил все галочки, но не сработало.
Не подскажешь где искать конкретно smtp?1523471379463.png
 

pligin

Команда форума
Администратор
$sender -> RecoveryPassword($db_q["email"], $db_q["pass"], $db_q["email"]);
должно быть
PHP:
$sender -> RecoveryPassword($db_q["user"], $db_q["pass"], $db_q["email"]);
попробуй это
PHP:
$this->smtp_msg($sock, "HELO " . $_SERVER['SERVER_NAME']);
Изменить на это
PHP:
$this->smtp_msg($sock, "EHLO " . $_SERVER['SERVER_NAME']);
 

demonberkyt

Участник
должно быть
PHP:
$sender -> RecoveryPassword($db_q["user"], $db_q["pass"], $db_q["email"]);
попробуй это
PHP:
$this->smtp_msg($sock, "HELO " . $_SERVER['SERVER_NAME']);
Изменить на это
PHP:
$this->smtp_msg($sock, "EHLO " . $_SERVER['SERVER_NAME']);
Ты оказался прав. Проблема пропала, правда письмо не дошло :D и в отправленных нет, ни в админе, ни в саппорте:)
 

pligin

Команда форума
Администратор
Ты оказался прав. Проблема пропала, правда письмо не дошло :D и в отправленных нет, ни в админе, ни в саппорте:)
в отправленных не будет - SMTP не ложит письмо в папку, расшифруй аббревиатуру и переведи и ты поймешь почему.
отправлял, скорее всего на ящик яндекса, поэтому и не дошло - с первого раза трудно попасть в ящики яндекса
 

demonberkyt

Участник
в отправленных не будет - SMTP не ложит письмо в папку, расшифруй аббревиатуру и переведи и ты поймешь почему.
отправлял, скорее всего на ящик яндекса, поэтому и не дошло - с первого раза трудно попасть в ящики яндекса
на gmail и яндекс отправлял )
 

demonberkyt

Участник
в отправленных не будет - SMTP не ложит письмо в папку, расшифруй аббревиатуру и переведи и ты поймешь почему.
отправлял, скорее всего на ящик яндекса, поэтому и не дошло - с первого раза трудно попасть в ящики яндекса
Всё, я понял в чём прикол, письма в спам уходят, поэтому и не увидел xD
В любом случае - спасибо за помощь :)
 
Последнее редактирование:
Верх