нужно спарсить только одну строку, красным выделил
<title>
Mail.com - Почтовый ящик
(1)
</title>
![user posted image](http://i5.pixs.ru/storage/8/4/5/Bezimyanni_1715222_4688845.png)
Редиректит автоматом на http://web.mail.com/message_box/folders/SU...header-login1-1
вход: http://mail.com
логин: skatina@usa.com
пасс: skatina123456
НИД ХЕЛП
попробовал сделась сам - не пишет кукисы(((
опыта мало..
<?php
// выдернул снифером http://web.mail.com/login?user[email]=@mail&user[password]=7ytJdqcxThScB-3vC8CQixND2PDU cA
$url = "http://service.mail.com/login.html#.671918-header-login1-1"; //УРЛ, куда отправлять данные
$login = 'skatina@usa.com'; //Логин
$password = 'skatina123456'; //Пароль
$user_cookie_file = $_SERVER['DOCUMENT_ROOT'].'/555/cookies.txt'; //Полный путь до файла, где будем хранить куки
$idkey = '3121235564020nVDfxvth2'; //Хрен знает что
$rdirurl = 'http://www.mail.com/ru/'; //Откуда мы пришли на страницу авторизации
$timestamp = ''; //Хрен знает что
$In = 'Вход'; //Кнопка входа
function auth($url) {
global $user_cookie_file, $idkey, $rdirurl, $timestamp, $login, $password, $In; // Получаем все POST данные
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)");
curl_setopt($ch, CURLOPT_COOKIEFILE, $user_cookie_file); //Куки раз
curl_setopt($ch, CURLOPT_COOKIEJAR, $user_cookie_file); //Куки два
curl_setopt($ch, CURLOPT_POST,1); //Будем отправлять POST запрос
curl_setopt($ch, CURLOPT_POSTFIELDS,"user[email]=@mail&user[password]=7ytJdqcxThScB-3vC8CQixND2PDUcA&In=$In");
$html = curl_exec($ch);
curl_close($ch);
return $html; //Возвращаем ответ
}
auth($url); // Авторизируемся.
?>
Спустя 18 минут, 27 секунд (2.05.2012 - 08:52) Oyeme написал(а):
Для чтения почты используются специальные протоколы. (POP3,IMAP).
Примеров полно:
http://garrettstjohn.com/entry/reading-emails-with-php/
Примеров полно:
http://garrettstjohn.com/entry/reading-emails-with-php/
Спустя 1 минута, 19 секунд (2.05.2012 - 08:54) spooki написал(а):
Там нет (POP3, IMAP) и пересылки на др ящики тоже нет!
Увы(((
Поэтому только парсер...
Увы(((
Поэтому только парсер...
Спустя 4 минуты, 27 секунд (2.05.2012 - 08:58) Oyeme написал(а):
Цитата |
IMAP, a great way to retrieve your Mail.com emails in a mail client.. |
![wink.gif](http://phpforum.ru/html/emoticons/wink.gif)
Спустя 5 минут, 25 секунд (2.05.2012 - 09:03) spooki написал(а):
Да написано там много чего. В саппорт писал... сказали что в новых версиях появится - а до этих версий, как пешком до Китая.
У меня там есть 2й акк - 10 летней давности, на др. сервере находится (англ. версия - там предлагают премиум акк купить, чтоб все работало) - тоже не айс.
![user posted image](http://i5.pixs.ru/storage/3/8/2/Bezimyanni_3037586_4689382.png)
ПОЭТОМУ - ПАРСЕР только нужен)))
Вопрос отпал!
==========================
решение:
У меня там есть 2й акк - 10 летней давности, на др. сервере находится (англ. версия - там предлагают премиум акк купить, чтоб все работало) - тоже не айс.
![user posted image](http://i5.pixs.ru/storage/3/8/2/Bezimyanni_3037586_4689382.png)
ПОЭТОМУ - ПАРСЕР только нужен)))
Вопрос отпал!
==========================
решение:
<?php
$login = 'skatina@usa.com';
$passwd = 'skatina123456';
header("Content-Type: text/html;charset=utf-8");
define ('DS',DIRECTORY_SEPARATOR);
// Сама функция обработки запросов...
function GO($url, $post=false, $header=false)
{
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_COOKIEJAR, getcwd().DS.'cookie.txt');
curl_setopt($ch, CURLOPT_COOKIEFILE, getcwd().DS.'cookie.txt');
curl_setopt($ch, CURLOPT_USERAGENT, 'Opera 10.00');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 20);
curl_setopt($ch, CURLOPT_TIMEOUT, 20);
curl_setopt($ch, CURLOPT_AUTOREFERER, 1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_MAXREDIRS, 10);
if ($post!==false)
{
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($post));
}
if ($header!==false)
curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
$res = curl_exec($ch);
curl_close($ch);
return $res;
}
// Постим данные для авторизации.
$page=GO('http://service.mail.com/login.html',
array(
'rdirurl' => 'http://www.mail.com/ru/',
'edition' => 'ru',
'lang' => 'ru',
'device' => 'desktop',
'usertype' => 'standard',
'login' => $login,
'password' => $passwd,
'btnLogin' => 'Вход'
)
);
if (preg_match('#<title>.+\((\d+)\).+</title>#smiU', $page, $n))
echo 'В почтовом ящике '.$login.' писем: '.$n[1];
else
echo 'Какието проблемы O_o';
?>
Спустя 23 часа, 19 минут, 56 секунд (3.05.2012 - 08:23) spooki написал(а):
Разочарование((((
Не работает на хостинге. На 2х проверял - не прет(((
open_basedir - хостеры не включат!
Зато на денвере - вуаля... Пашет на ура.
Как починить?
может это? http://www.snippy.ru/snippet/1239-yemuliru...owlocation-php/
Помогитеееееее :(
Не работает на хостинге. На 2х проверял - не прет(((
Warning: curl_setopt() [function.curl-setopt]: CURLOPT_FOLLOWLOCATION cannot be activated when safe_mode is enabled or an open_basedir is set in /home/sssssssss/public_html/ssssssss.ru/crone.php on line 17
Какието проблемы O_o
open_basedir - хостеры не включат!
Зато на денвере - вуаля... Пашет на ура.
Как починить?
может это? http://www.snippy.ru/snippet/1239-yemuliru...owlocation-php/
Помогитеееееее :(
Спустя 26 минут, 19 секунд (3.05.2012 - 08:50) Игорь_Vasinsky написал(а):
Цитата |
safe_mode is enabled |
нафиг такой хостинг.
Спустя 3 минуты, 17 секунд (3.05.2012 - 08:53) spooki написал(а):
Спустя 4 минуты, 22 секунды (3.05.2012 - 08:57) Игорь_Vasinsky написал(а):
Спустя 2 минуты, 13 секунд (3.05.2012 - 09:00) spooki написал(а):
Угу(((
Так и на 2м хосте тоже не работает... Альтернативу нужно.....
Значит... Нужно юзать как-то это: http://www.php.net/manual/en/function.curl-setopt.php#95027
Так и на 2м хосте тоже не работает... Альтернативу нужно.....
Значит... Нужно юзать как-то это: http://www.php.net/manual/en/function.curl-setopt.php#95027
Спустя 4 минуты, 13 секунд (3.05.2012 - 09:04) Игорь_Vasinsky написал(а):
он те говорит что CURLOPT_FOLLOWLOCATION
- не пойдёт он за редиректом - так как боится.
- не пойдёт он за редиректом - так как боится.
Спустя 2 минуты, 16 секунд (3.05.2012 - 09:06) Nikitian написал(а):
if(!ini_get('safe_mode')){
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
}
А вообще этот followlocation особо и не нужен, не проблема вытянуть адрес редиректа из хидеров ответа. Если адрес постоянен, то самому на него перейти, сразу после запроса.
Спустя 23 часа, 20 минут, 51 секунда (4.05.2012 - 08:27) Guest написал(а):
Работает через раз(((
а можно как-то обойти проверку подтверждения почты?
Проблемка КЕП, донор просит указать вторичный E-MAIL.
![user posted image](http://i5.pixs.ru/storage/1/6/6/Bezimyanni_8850202_4704166.png)
Помогите обойти как-нибудь...
а можно как-то обойти проверку подтверждения почты?
Проблемка КЕП, донор просит указать вторичный E-MAIL.
![user posted image](http://i5.pixs.ru/storage/1/6/6/Bezimyanni_8850202_4704166.png)
<?php
$login = 'skatina@usa.com';
$passwd = 'skatina123456';
header("Content-Type: text/html;charset=cp1251");
define ('DS',DIRECTORY_SEPARATOR);
function GO($url, $post=false, $header=false)
{
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_COOKIEJAR, getcwd().DS.'/cookie.txt');
curl_setopt($ch, CURLOPT_COOKIEFILE, getcwd().DS.'/cookie.txt');
curl_setopt($ch, CURLOPT_USERAGENT, 'Opera 10.00');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 20);
curl_setopt($ch, CURLOPT_TIMEOUT, 20);
curl_setopt($ch, CURLOPT_HEADER, 1);
if ($post!==false)
{
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($post));
}
if ($header!==false)
curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
$res = curl_exec($ch);
curl_close($ch);
return FOLLOWLOCATION($res, $url);
}
function FOLLOWLOCATION($str, $host)
{
if (preg_match("#Location: ?(.*)#i", $str, $match))
{
if (!preg_match('#http://|https://#', trim($match[1])))
{
$host=parse_url($host);
if (substr(trim($match[1]), 0, 1) !='/') $match[1]='/'.$match[1];
$match[1]=$host['scheme'].'://'.$host['host'].trim($match[1]);
}
return (GO(trim($match[1])));
}
else
return $str;
}
echo $page=GO('http://service.mail.com/login.html',
array(
'rdirurl' => 'http://www.mail.com/ru/',
'edition' => 'ru',
'lang' => 'ru',
'device' => 'desktop',
'usertype' => 'standard',
'login' => $login,
'password' => $passwd,
'btnLogin' => 'Вход'
)
);
if (preg_match('#<title>.+\((\d+)\).+</title>#smiU', $page, $n))
echo 'В почтовом ящике '.$login.' писем: '.$n[1];
elseif (preg_match('#BorderBoxDataCollection:ButtonSkip#', $page))
{
echo 'Проблемка КЕП, донор просит указать вторичный E-MAIL.';
}
else
echo 'Какието проблемы O_o';
?>
Помогите обойти как-нибудь...
_____________
XMLSEO сервис купли-продажи Яндекс.XML лимитов и туннелирования Yandex и Google выдачи