Главная » Функционал » Дополнительные функции » Регистрация почтовых ящиков в зоне вашего домена при помощи Яндекс почты (API)

Регистрация почтовых ящиков в зоне вашего домена при помощи Яндекс почты (API)

12.08.2012 в 10:18
Автор: JonMagon


Предисловие
Довольно часто вижу на форуме «Сообщества uCoz» вопросы связанные с услугой «Почта для домена» от сервиса Яндекс, и самый частый вопрос: Как сделать, чтобы пользователи могли сами регистрировать себе почту?
О чем и будет рассказано в данном мануале.

Введение
Есть, по крайней мере, два способа реализации:

  • С использованием PHP (рекомендуется)
  • Используя только HTML

Преимущество на стороне 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>

токен_от_яндекс_почты заменяем на токен, который мы еще получили в самом начале.

Готово, теперь любой пользователь может зарегистрировать себе почтовый ящик в зоне вашего домена.

Рейтинг: 11  (помогла ли Вам эта инструкция: да / нет)          Просмотров: 12066          Комментариев: