Предисловие
Довольно часто вижу на форуме «Сообщества 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_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>
токен_от_яндекс_почты заменяем на токен, который мы еще получили в самом начале.
Готово, теперь любой пользователь может зарегистрировать себе почтовый ящик в зоне вашего домена.