Автоматическия регистрация почтовых ящиков для сервиса pdd.yandex.ru

PHP
Представляю вашему вниманию бесплатный скрипт «Автоматической регистрации почтовых ящиков для сервиса pdd.yandex.ru»

Автоматическая регистрация почтовых ящиков pdd.yandex.ru


Указанная ниже версия поможет вам сделать автоматическую регистрацию почтовых ящиков, никаких проверок и капчей в ней нет.

Рабочий исходник сохраняете в файл index.php:

<?php
#######
## Автоматическия регистрация почтовых ящиков для сервиса pdd.yandex.ru
## Разработано: zloy.org
## Регистрация доменов: www.nserver.ru
#######


if ($_REQUEST[login]!="" AND $_REQUEST[password]!="")
{
## Для активации API Яндекс.Почты для доменов необходимо получить авторизационный токен.
## Для получения токена необходимо после подключения домена перейти по адресу: https://pddimp.yandex.ru/get_token.xml?domain_name=... 
## возвращает: <ok token="..."/> или <error reason='...'/>
## Полученный токен используется также для обращения к остальным методам API. Получать его нужно только один раз.

$token="ваш_токен"; # токен
$login=$_REQUEST[login]; // имя почтового ящика без домена
$password=$_REQUEST[password]; // пароль почтового ящика

$postData="token=".$token."&u_login=".$login."&u_password=".$password.""; // формируем запрос

        $ch = curl_init(); // инициализация сеанса
        curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0); // Задает проверку имени, указанного в сертификате удаленного сервера, при установлении SSL соединения. 
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0); // запретить проверку сертификата удаленного сервера
        curl_setopt($ch, CURLOPT_URL, "https://pddimp.yandex.ru/reg_user_token.xml"); // URL, с которым будет производиться операция.
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); // При установке этого параметра в ненулевое значение CURL будет возвращать результат, а не выводить его.
        curl_setopt($ch, CURLOPT_POST, 1); // При установке этого параметра в ненулевое значение будет отправлен HTTP запрос методом POST
        curl_setopt($ch, CURLOPT_POSTFIELDS, $postData); // Строка, содержащая данные для HTTP POST запроса.
        $answer=curl_exec($ch); // загрузка страницы и выдача её браузеру
        curl_close($ch); // завершение сеанса и освобождение ресурсов

        $pos1 = stripos($answer,"ok uid");
        if ($pos1!==false) {
    echo "Данный адрес успешно зарегистрирован!";
        }

        $pos1 = stripos($answer,"occupied");
        if ($pos1!==false) {
    echo "Данный адрес уже занят!";
        }

        $pos1 = stripos($answer,"badlogin");
        if ($pos1!==false) {
    echo "В логине использованы не допустимые символы!";
        }

        $pos1 = stripos($answer,"bad_password");
        if ($pos1!==false) {
    echo "В пароле использованы не допустимые символы!";
        }

}
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Почта@ZloY.org</title>
<style>
*{ FONT-SIZE: 8pt; FONT-FAMILY: verdana; }
b { FONT-WEIGHT: bold; }
.listtitle { BACKGROUND: #425984; COLOR: #EEEEEE; white-space: nowrap; }
td.list { BACKGROUND: #EEEEEE; white-space: nowrap; }
</style>
</head>
<body>
<!-- Разработка: zloy.org -->
<center><br /><br /><br /><br />
<h1>Регистрация на Почта@ZloY.org</h1>
<table cellspacing="1" cellpadding="5">
<tr>
<td class="listtitle" colspan="2">Для регистрации введите желаемый логин и пароль</td></tr>
<form action="index.php" method="POST" name="form">
<input type=hidden name=referer value="/">
<tr><td class=list align=right><input type="text" name="login" title="Логин должен состоять из букв латинского алфавита и может содержать цифры. Регистр букв (большие или маленькие) не имеет значения. В логине нельзя использовать пробелы, но допустимы точки и дефисы. Точка и дефис считаются равнозначными."/></td><td class="list" align="left">@zloy.org</td></tr>
<tr><td class="list" align="right"><input type="password" name="password" title="Пароль должен содержать от 6 до 20 символов. Можно использовать латинские буквы, цифры и символы из списка: ! @ # $ % ^ & * ( ) _ - + Пароль не может совпадать с логином."/></td><td class="list" align="left">пароль</td></tr>
<tr><td class="listtitle" align="right" colspan="2"><input type="submit" value="Зарегистрировать"/></td></tr>
</form>
</table>
<div class="copy">2012 © <a href="http://zloy.org">zloy.org</a></div>
</center>

</body>
</html>

Файл в который Вы вставите данный код должен быть сохранен в UTF-8 кодировке!

PS. Имеется в наличии версия скрипта как на скриншоте, с проверкой логина на занятость и яндекс.капчей, вы можете ее купить за 500 рублей, пишите в личку!

59 комментариев

комментарий был удален
комментарий был удален
avatar
При отправке формы тупо кидает на главную страницу. Не силен в пхп, просто скопировал код в файлы и сменил токен.
avatar
вот у меня такая же фигня. просто кидает на главную страницу и все. мож я чтота не так делаю?
как я понял там только токен надо вписать в строке $token=«тут токен вписовать»; # токен… и все. создал файл reg.php закинул весь этот когд туда прописал токен. или я не так че делаю?
комментарий был удален
avatar
файл должен называться index.php если имя другое то нужно поменять в коде в этой строчке:
<form action="index.php" method="POST" name="form">
комментарий был удален
комментарий был удален
комментарий был удален
avatar
спасибо большое. все заработало. но у меня еще один вопрос. как сделаь так чтоб при регистриции на сайте регистрировалась почта. с таким же паролем
avatar
ну или хотя бы капчу поставить. а то слишком простая регистрация, а если бы еще и паспорт сразу заполнять нада было бы. то еще бы круче было
avatar
tengiz, здесь показан основы регистрации почтового ящика, если хотите что-то еще изучайте PHP или найдите того, кто вам это сделает за вознаграждение :)
avatar
аа понятно. всеровно спасибо большое. очень полезный скрипт
avatar
и вот еще вопрос. как сделать чтоб после регистрации перебрасывал на страницу авторизации?
avatar
После
$pos1 = stripos($answer,"ok uid");
        if ($pos1!==false)
вместо
{
    echo "Данный адрес успешно зарегистрирован!";
        }
скопируйте следующий код, где переменная $domain это ваш домен!
{
		$xml = simplexml_load_file("https://pddimp.yandex.ru/api/user_oauth_token.xml?token=$token&domain=$domain&login=$login");
	$xmls = $xml->xpath('domains/domain/email/oauth-token');
	$temp_token = $xmls[0];
	
    header("Location: http://passport.yandex.ru/passport?mode=oauth&type=trusted-pdd-partner&error_retpath=http%3A//$domain/%2F&access_token=$temp_token");
		exit;
		}
перебрасывает в ящик для дорегистрации.
avatar
спасибо большое, все работает как надо
avatar
frank а не подскажешь как добавить капчу? и чтоб пароль подверждать пароль?
avatar
Вот исходная форма, с проверкой пароля на совпадение
<html>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows1251" />
<title>Почта@ZloY.org</title>
<style>
*{ FONT-SIZE: 8pt; FONT-FAMILY: verdana; }
b { FONT-WEIGHT: bold; }
.listtitle { BACKGROUND: #425984; COLOR: #EEEEEE; white-space: nowrap; }
td.list { BACKGROUND: #EEEEEE; white-space: nowrap; }
</style>
<script type="text/javascript" src="confirmpass.js"></script>
</head>
<body>
<!-- Разработка: zloy.org -->
<center><br /><br /><br /><br />
<h1>Регистрация на Почта@ZloY.org</h1>
<table cellspacing="1" cellpadding="5">
<tr>
<td class="listtitle" colspan="2">Для регистрации введите желаемый логин и пароль</td></tr>
<form action="2.php" method="POST" name="form">
<input type=hidden name=referer value="/">
<tr><td class=list align=right><input type="text" name="login" title="Логин должен состоять из букв латинского алфавита и может содержать цифры. Регистр букв (большие или маленькие) не имеет значения. В логине нельзя использовать пробелы, но допустимы точки и дефисы. Точка и дефис считаются равнозначными."/></td><td class="list" align="left">@zloy.org</td></tr>
<tr><td class="list" align="right"><input type="password" name="password" onKeyUp="isRavno('form','password','password2','password22','submit')" title="Пароль должен содержать от 6 до 20 символов. Можно использовать латинские буквы, цифры и символы из списка: ! @ # $ % ^ & * ( ) _ - + Пароль не может совпадать с логином."/></td><td class="list" align="left">пароль</td></tr>
<tr><td class="list" align="right"><input type="password" name="password2" onKeyUp="isRavno('form','password','password2','password22','submit')"></td><td class="list" align="left">Проверка пароля</td></tr>			   
<tr><td class="list" align="center" id="password22" ></td></tr>
<tr><td class="listtitle" align="right" colspan="2"><input type="submit" name="submit" value="Зарегистрировать"disabled></td></tr>
</form>
</table>
<div class="copy">2012 © <a href="http://zloy.org">zloy.org</a></div>
</center>

</body>
</html>

И код Javascript
var min_length=6;
function isRavno(form,password,password2,password22,submit)
 {
 	PASS1=document.forms[form].password.value;
 	PASS1count=document.forms[form].password.value.length;
    PASS2=document.forms[form].password2.value;
    PASS22=document.getElementById(password22);
    SUBMIT=document.forms[form].submit;
    if(PASS1==PASS2)
    {
    
        PASS22.style.background="#dbffd7";
        PASS22.style.color="#00a86b";
    	PASS22.innerHTML="Введено верно";

    	
    	if(PASS1count>=min_length)
    	SUBMIT.disabled=0;
    }
    else 
    {
    
        PASS22.style.background="#ffc0cb";
        PASS22.style.color="#ff0000";
    	PASS22.innerHTML="Пароли не совпадают";
    	SUBMIT.disabled=1;
    }
 }

Этот код сохрани в отдельный файл как JavaScript file [*js]. Файл должен называться «confirmpass.js», и закинь его туда же!
А зачем капча? Там же есть своя на яндексе, два раза капчу вводить это издевательство.
avatar
не работает( при нажатии на регистрацию перебрасывает ввв.сайт.ру\2.php но такой страницы у меня нет
avatar
Дружище tengiz выучи, хотя бы основы HTML и PHP и все твои вопросы отпадут сами собой! Проверено на себе:)
avatar
Твой код действительно не работает, даже если исправить на index.php
avatar
mikhey, можете исправить код, чтобы была проверка пароля, как в способе, который прислал пользователь frank
комментарий был удален
avatar
А где тут проверка пароля?
комментарий был удален
avatar
Для тех, кто в танке! Можете скачать по ссылке: depositfiles.com/files/s5of6dbff и проверить, все прекрасно работает!
Извиняюсь вот ссылка http://depositfiles.com/files/l2em7dcrb
avatar
первый файл этот:
<?php
#######
## Автоматическия регистрация почтовых ящиков для сервиса pdd.yandex.ru
## Разработано: zloy.org
## Регистрация доменов: www.nserver.ru
#######


if ($_REQUEST[login]!="" AND $_REQUEST[password]!="")
{
## Для активации API Яндекс.Почты для доменов необходимо получить авторизационный токен.
## Для получения токена необходимо после подключения домена перейти по адресу: https://pddimp.yandex.ru/get_token.xml?domain_name=... 
## возвращает: <ok token="..."/> или <error reason='...'/>
## Полученный токен используется также для обращения к остальным методам API. Получать его нужно только один раз.

$token="ваш_токен"; # токен
$login=$_REQUEST[login]; // имя почтового ящика без домена
$password=$_REQUEST[password]; // пароль почтового ящика

$postData="token=".$token."&u_login=".$login."&u_password=".$password.""; // формируем запрос

        $ch = curl_init(); // инициализация сеанса
        curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0); // Задает проверку имени, указанного в сертификате удаленного сервера, при установлении SSL соединения. 
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0); // запретить проверку сертификата удаленного сервера
        curl_setopt($ch, CURLOPT_URL, "https://pddimp.yandex.ru/reg_user_token.xml"); // URL, с которым будет производиться операция.
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); // При установке этого параметра в ненулевое значение CURL будет возвращать результат, а не выводить его.
        curl_setopt($ch, CURLOPT_POST, 1); // При установке этого параметра в ненулевое значение будет отправлен HTTP запрос методом POST
        curl_setopt($ch, CURLOPT_POSTFIELDS, $postData); // Строка, содержащая данные для HTTP POST запроса.
        $answer=curl_exec($ch); // загрузка страницы и выдача её браузеру
        curl_close($ch); // завершение сеанса и освобождение ресурсов

        $pos1 = stripos($answer,"ok uid");
        if ($pos1!==false) {
    echo "Данный адрес успешно зарегистрирован!";
        }

        $pos1 = stripos($answer,"occupied");
        if ($pos1!==false) {
    echo "Данный адрес уже занят!";
        }

        $pos1 = stripos($answer,"badlogin");
        if ($pos1!==false) {
    echo "В логине использованы не допустимые символы!";
        }

        $pos1 = stripos($answer,"bad_password");
        if ($pos1!==false) {
    echo "В пароле использованы не допустимые символы!";
        }

}
?>
<html>
	<head>
		<meta http-equiv="Content-Type" content="text/html; charset=windows1251" />
		<title>Почта@ZloY.org</title>
		<style>
		*{ FONT-SIZE: 8pt; FONT-FAMILY: verdana; }
		b { FONT-WEIGHT: bold; }
		.listtitle { BACKGROUND: #425984; COLOR: #EEEEEE; white-space: nowrap; }
		td.list { BACKGROUND: #EEEEEE; white-space: nowrap; }
		</style>
		<script type="text/javascript" src="confirmpass.js"></script>
	</head>
	<body>
		<!-- Разработка: zloy.org -->
		<center><br /><br /><br /><br />
		<h1>Регистрация на Почта@ZloY.org</h1>
		<table cellspacing="1" cellpadding="5">
		<tr>
		<td class="listtitle" colspan="2">Для регистрации введите желаемый логин и пароль</td></tr>
		<form action="index.php" method="POST" name="form">
		<input type=hidden name=referer value="/">
		<tr><td class=list align=right><input type="text" name="login" title="Логин должен состоять из букв латинского алфавита и может содержать цифры. Регистр букв (большие или маленькие) не имеет значения. В логине нельзя использовать пробелы, но допустимы точки и дефисы. Точка и дефис считаются равнозначными."/></td><td class="list" align="left">@zloy.org</td></tr>
		<tr><td class="list" align="right"><input type="password" name="password" onKeyUp="isRavno('form','password','password2','password22','submit')" title="Пароль должен содержать от 6 до 20 символов. Можно использовать латинские буквы, цифры и символы из списка: ! @ # $ % ^ & * ( ) _ - + Пароль не может совпадать с логином."/></td><td class="list" align="left">пароль</td></tr>
		<tr><td class="list" align="right"><input type="password" name="password2" onKeyUp="isRavno('form','password','password2','password22','submit')"></td><td class="list" align="left">Проверка пароля</td></tr>		
		<tr><td class="list" align="center" id="password22" ></td><td class="list"></td></tr>		
		<tr><td class="listtitle" align="right" colspan="2"><input type="submit" name="submit" value="Зарегистрировать"disabled></td></tr>
		</form>
		</table>
		<div class="copy">2012 © <a href="http://zloy.org">zloy.org</a></div>
		</center>
	</body>
</html>
avatar
второй файл с именем confirmpass.js и содержанием:
var min_length=6;
function isRavno(form,password,password2,password22,submit)
 {
        PASS1=document.forms[form].password.value;
        PASS1count=document.forms[form].password.value.length;
    PASS2=document.forms[form].password2.value;
    PASS22=document.getElementById(password22);
    SUBMIT=document.forms[form].submit;
    if(PASS1==PASS2)
    {
    
        PASS22.style.background="#dbffd7";
        PASS22.style.color="#00a86b";
        PASS22.innerHTML="Введено верно";

        
        if(PASS1count>=min_length)
        SUBMIT.disabled=0;
    }
    else 
    {
    
        PASS22.style.background="#ffc0cb";
        PASS22.style.color="#ff0000";
        PASS22.innerHTML="Пароли не совпадают";
        SUBMIT.disabled=1;
    }
 }
комментарий был удален
avatar
Как получить токен? Я что-то жутко туплю. Говорят, нужно подключить сайт… Короче, я тупо в адресную строку вставляю pddimp.yandex.ru/get_token.xml?domain_name=yourdomain.ru, а в ответ еррор =(
avatar
Домен должен быть уже подключен к pdd.yandex.ru!

pddimp.yandex.ru/get_token.xml?domain_name=yourdomain.ru нормально отрабатывает.
avatar
СПАСИБО ВСЕ СУПЕР РАБОТАЕТ,
в скрипте можно было бы вместо if(PASS1==PASS2) сделать if(PASS1==PASS2&PASS1!="") хотя с этими мелочами у же каждый сам должен разбираться)))
СПАСИБО АВТОРУ
avatar
Скажите пожалуйста как сделать проверку на занятость имени?
avatar
скрипт выполняет проверку на занятость!
avatar
Вы меня маленько не правильно поняли.Не такая проверка нужна.Нужно что бы как у яндекса сразу писал при выборе логина что имя занято а не после отправки данных.
комментарий был удален
avatar
Может за определённую плату возьмётесь помочь?
комментарий был удален
комментарий был удален
avatar
За определенную плату помогу, тем более что уже есть рабочий вариант.
комментарий был удален
комментарий был удален
avatar
Как токен подключить? делаю как сказано више и такое вот пишет…
This XML file does not appear to have any style information associated with it. The document tree is shown below.

<result xmlns:x=«www.yandex.ru/xscript»>
<error xmlns:xi=«www.w3.org/2001/XInclude» reason=«no token found»/>
avatar
Всё разобрался, не нашол где этот комент удалить…
avatar
Скажите пожалуйста, а как сделать так чтоб в форме была только проверка имени на занятость и все?
avatar
Убрать не нужный код из скрипта
avatar
а как задать пароль, чтоб не вводить его, а один для всех был?
avatar
сделать его скрытым в форме или уже в php скрипте передавать на сервер.
avatar
а как именно в php коде?
avatar
ну вот в этой строчке вписать mypassword и для всех будет один пароль.

$postData="token=".$token."&u_login=".$login."&u_password="mypassword""; // формируем запрос
avatar
спасибо))
avatar
а еще скажи пожалуйста, что именно убрать чтоб только проверка была на занятость имени?
комментарий был удален
avatar
эту строчку в форме тоже убрать, чтобы не мешалась:
<tr><td class="list" align="right"><input type="password" name="password" title="Пароль должен содержать от 6 до 20 символов. Можно использовать латинские буквы, цифры и символы из списка: ! @ # $ % ^ & * ( ) _ - + Пароль не может совпадать с логином."/></td><td class="list" align="left">пароль</td></tr>
avatar
убрал эту строчку, оно короче не работает так...(((
avatar
хз как, уже по разному пробывал не как не получаеться(((
avatar
Вот это еще нада убрать в коде:
AND $_REQUEST[password]!=""
avatar
ок, спасиба… но теперь не как не могу сделать регестрацию с капчей((, подскажи пожалуйста еще как это реализовать?
avatar
Вам нужно связать все это с капчей (например такой — zloy.org/blog/php/637.html), сервисов капч куча и у каждого свои способы, поэтому тут вам нужно самому попробовать.

Оставить комментарий