Регистрация почтовых ящиков в зоне вашего домена при помощи Яндекс почты (API)Предисловие Довольно часто вижу на форуме «Сообщества uCoz» вопросы связанные с услугой «Почта для домена» от сервиса Яндекс, и самый частый вопрос: Как сделать, чтобы пользователи могли сами регистрировать себе почту? О чем и будет рассказано в данном мануале. Введение Есть, по крайней мере, два способа реализации:
Преимущество на стороне PHP, т.к. используя его, токен не может попасть в руки третьих лиц. Реализация Для начала определяем токен, перейдя на страницу https://pddimp.yandex.ru/get_token.xml?domain_name=ваш_домен Реализация на PHP Создаем файл под названием index.php со следующем содержимым Code <? $curl = curl_init(); curl_setopt($curl, CURLOPT_USERAGENT, 'Bot System'); curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($curl, CURLOPT_POST, false); curl_setopt($curl, CURLOPT_URL, 'https://pddimp.yandex.ru/reg_user_token.xml?token=токен_от_яндекс_почты&u_login=' . $_GET['login'] . '&u_password=' . $_GET['password']); $a = curl_exec($curl); if (stripos($a, "ok uid") !== false) { echo "$('#status').html('<img src=\"http://src.ucoz.net/.s/img/icon/ok.png\" style=\"vertical-align:-3px;\"> Регистрация успешна<br/><br/>');"; } else { if (stripos($a, "badlogin") !== false) { echo "$('#status').html('<img src=\"http://src.ucoz.net/.s/img/icon/del.png\" style=\"vertical-align:-3px;\"> Логин содержит запрещенные символы<br/><br/>');"; } else if (stripos($a, "passwd-badpasswd") !== false) { echo "$('#status').html('<img src=\"http://src.ucoz.net/.s/img/icon/del.png\" style=\"vertical-align:-3px;\"> Пароль содержит запрещенные символы<br/><br/>');"; } else if (stripos($a, "login_short") !== false) { echo "$('#status').html('<img src=\"http://src.ucoz.net/.s/img/icon/del.png\" style=\"vertical-align:-3px;\"> Слишком короткий логин<br/><br/>');"; } else if (stripos($a, "badlogin_length") !== false) { echo "$('#status').html('<img src=\"http://src.ucoz.net/.s/img/icon/del.png\" style=\"vertical-align:-3px;\"> Слишком длинный логин<br/><br/>');"; } else if (stripos($a, "passwd-tooshort") !== false) { echo "$('#status').html('<img src=\"http://src.ucoz.net/.s/img/icon/del.png\" style=\"vertical-align:-3px;\"> Слишком короткий пароль<br/><br/>');"; } else if (stripos($a, "passwd-toolong") !== false) { echo "$('#status').html('<img src=\"http://src.ucoz.net/.s/img/icon/del.png\" style=\"vertical-align:-3px;\"> Слишком длинный пароль<br/><br/>');"; } else if (stripos($a, "occupied") !== false) { echo "$('#status').html('<img src=\"http://src.ucoz.net/.s/img/icon/del.png\" style=\"vertical-align:-3px;\"> Данный логин занят<br/><br/>');"; } else if (stripos($a, "no-passwd") !== false) { echo "$('#status').html('<img src=\"http://src.ucoz.net/.s/img/icon/del.png\" style=\"vertical-align:-3px;\"> Пароль не указан<br/><br/>');"; } else { echo "$('#status').html('<img src=\"http://src.ucoz.net/.s/img/icon/del.png\" style=\"vertical-align:-3px;\"> Необрабатываемая ошибка<br/><br/>');"; } } ?> токен_от_яндекс_почты заменяем на токен, который мы еще получили в самом начале, сохраняем. Внимание: Файл должен быть в кодировке UTF-8 Загружаем файл на FTP PHP в папку email. На странице, где хотим вывести форму регистрации, размещаем следующий код Code <script type="text/javascript"> function reg() { $('#status').html('<img src="http://src.ucoz.net/img/ma/m/i2.gif" style="vertical-align:-3px;"> Выполняется запрос...<br/>'); $('#status').show(); $.getScript('/php/email/index.php?login=' + $('input[name="login"]').val() + '&password=' + $('input[name="password"]').val()); } </script> <div style="text-align:center"><b>Регистрация</b><br/><br/> <div id="status" style="display:none"></div> Логин:<br/> <input type="text" name="login" size="30" width="150" maxlength="70"><br/><br/> Пароль:</br> <input type="password" name="password" size="30" width="150" maxlength="70"><br/><br/> <input type="button" value="Зарегистрироваться" onclick="reg();"> </div> Реализация на HTML В нужном месте размещаем следующий код Code <form action="https://pddimp.yandex.ru/reg_user_token.xml"> <input type="hidden" name="token" value="токен_от_яндекс_почты"/> <div style="text-align:center"><b>Регистрация</b><br/><br/> Логин:<br/> <input type="text" name="u_login" size="30" width="150" maxlength="70"/><br/><br/> Пароль:</br> <input type="password" name="u_password" size="30" width="150" maxlength="70"/><br/><br/> <input type="submit" value="Зарегистрироваться"> </div> </form> токен_от_яндекс_почты заменяем на токен, который мы еще получили в самом начале. Готово, теперь любой пользователь может зарегистрировать себе почтовый ящик в зоне вашего домена. |