[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: замучался с постом черз веб интерфейс яндекса
kadett
Скрипт для логина на ящик и отправки почты через веб интерфейс яндекса. Собственно логинится отлично а дальше затык.

PHP
<?php
$username
="2";
$password="1";
$gacookie="./.gacookie";

$postdata="login=$username&passwd=$password&retpath=http://mail.yandex.ru/pda/compose?from=mail&amp;r=id44610208";
$ch curl_init();
curl_setopt ($chCURLOPT_URL,"http://pda-passport.yandex.ru/passport?mode=auth");
curl_setopt ($chCURLOPT_SSL_VERIFYPEERFALSE);
curl_setopt ($chCURLOPT_USERAGENT"Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.6) Gecko/20070725 Firefox/2.0.0.6");
curl_setopt ($chCURLOPT_TIMEOUT60);
curl_setopt ($chCURLOPT_FOLLOWLOCATION1);
curl_setopt ($chCURLOPT_RETURNTRANSFER0);
curl_setopt ($chCURLOPT_COOKIEJAR$gacookie);
curl_setopt ($chCURLOPT_COOKIEFILE$gacookie);
curl_setopt ($chCURLOPT_REFERER'http://mail.yandex.ru/pda/');
curl_setopt ($chCURLOPT_POSTFIELDS$postdata);
curl_setopt ($chCURLOPT_POST1);
$AskApache_result curl_exec ($ch);

echo 
$AskApache_result;

$postdata1 = array (
'ttype' => '',
'style' => 'pda',
'ret_page' => 'compose',
'fid' => '',
'overwrite' => '',
'ign_overwrite' => 'yes',
'from_mailbox' => 'yandex.ru',
'to' => 'alb2772@yandex.ru',
'cc' => '',
'bcc' => '',
'subj' => 'проверачка',
'send' => 'прошлоли',
);

curl_setopt ($chCURLOPT_URL,"http://mail.yandex.ru/pda/compose/mail_send");
curl_setopt ($chCURLOPT_SSL_VERIFYPEERFALSE);
curl_setopt ($chCURLOPT_HEADER0);
curl_setopt ($chCURLOPT_VERBOSE1);
curl_setopt ($chCURLOPT_USERAGENT"Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.6) Gecko/20070725 Firefox/2.0.0.6");
curl_setopt ($chCURLOPT_TIMEOUT600);
curl_setopt ($chCURLOPT_FOLLOWLOCATION1);
curl_setopt ($chCURLOPT_RETURNTRANSFER1);
curl_setopt ($chCURLOPT_COOKIEJAR$gacookie);
curl_setopt ($chCURLOPT_COOKIEFILE$gacookie);
curl_setopt ($chCURLOPT_REFERER'http://mail.yandex.ru/pda/compose');
curl_setopt ($chCURLOPT_POSTFIELDS$postdata1);
curl_setopt ($chCURLOPT_POST1);
$AskApache_result curl_exec ($ch);
curl_close($ch);

echo 
$AskApache_result;

unlink($gacookie);
exit;


не работает, логинится, зоходит на отправку письма, дальше не идет. Все аргументы вытащены из снифера.
Правда передаются они через мультипарт. может в этом засада?

2 день бьюсь...



Спустя 26 минут, 43 секунды (1.04.2008 - 14:30) kadett написал(а):
Код
POST /mail_send HTTP/1.1
Host: mail.yandex.ru
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.8.1.13) Gecko/20080311 Firefox/2.0.0.13
Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
Accept-Language: ru-ru,ru;q=0.8,en-us;q=0.5,en;q=0.3
Accept-Encoding: gzip,deflate
Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Connection: keep-alive
Referer: http://mail.yandex.ru/pda/compose
Cookie: L=XmBTVmVBcldpelx+AAdcXnxxfgdgZFZZRjxkVl4QEAMbPCAVfR0iNikJVSRZMnVdUWFjIlECAVw/PhMDWGBecA==.1207046723.2629.219911.7a9b79435be5fcc29e91a257ed3f2685; yandex_login=alb2772; my=YxwBAR4CAAAjAQEA; yabs-frequency=/2/tICx03K39qDKEm0r0o49mJa0DGCdJ4mx03K3F41KEm0r0oTqcZe0CGCdtfaw03439-GGEm0n0oLj0Ze0BmCdbVSv02y39pYEEW0l0oVKHZe0BmCdY04w02y39p3ACG0l0zm1kZW06WDy//fG8r0mU00O44W040; yandexuid=2162831145697770; yandex_nickname=; yandex_mail=alb2772; Session_id=1207046723.0.0.36496181.2:94331354:15.48096.2210.20a4103f1b3f1b4831022293a1e78307
Content-Type: multipart/form-data; boundary=---------------------------25824104981399
Content-Length: 2074

-----------------------------25824104981399
Content-Disposition: form-data; name="ttype"


-----------------------------25824104981399
Content-Disposition: form-data; name="style"

pda
-----------------------------25824104981399
Content-Disposition: form-data; name="ret_page"

compose
-----------------------------25824104981399
Content-Disposition: form-data; name="fid"


-----------------------------25824104981399
Content-Disposition: form-data; name="overwrite"


-----------------------------25824104981399
Content-Disposition: form-data; name="ign_overwrite"

yes
-----------------------------25824104981399
Content-Disposition: form-data; name="from_mailbox"

yandex.ru
-----------------------------25824104981399
Content-Disposition: form-data; name="to"

alb2772@yandex.ru
-----------------------------25824104981399
Content-Disposition: form-data; name="cc"


-----------------------------25824104981399
Content-Disposition: form-data; name="bcc"


-----------------------------25824104981399
Content-Disposition: form-data; name="subj"

хай
-----------------------------25824104981399
Content-Disposition: form-data; name="send"

типа
--
Жизнь без спама на Яндекс.Почте http://mail.yandex.ru/nospam
-----------------------------25824104981399
Content-Disposition: form-data; name="att"; filename=""
Content-Type: application/octet-stream


-----------------------------25824104981399
Content-Disposition: form-data; name="att"; filename=""
Content-Type: application/octet-stream


-----------------------------25824104981399
Content-Disposition: form-data; name="att"; filename=""
Content-Type: application/octet-stream


-----------------------------25824104981399
Content-Disposition: form-data; name="att"; filename=""
Content-Type: application/octet-stream


-----------------------------25824104981399
Content-Disposition: form-data; name="att"; filename=""
Content-Type: application/octet-stream


-----------------------------25824104981399--


потом идет редирект 302 сюды

Код
GET /done.xml?idcs=&mark_as=&where=&retpath=&style=pda&fid=&autosave=&subject=%D1%85%D0%B0%D0%B9&storedmid=1630000000264531351&spam=1 HTTP/1.1
Host: mail.yandex.ru
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.8.1.13) Gecko/20080311 Firefox/2.0.0.13
Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
Accept-Language: ru-ru,ru;q=0.8,en-us;q=0.5,en;q=0.3
Accept-Encoding: gzip,deflate
Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Connection: keep-alive
Referer: http://mail.yandex.ru/pda/compose
Cookie: L=XmBTVmVBcldpelx+AAdcXnxxfgdgZFZZRjxkVl4QEAMbPCAVfR0iNikJVSRZMnVdUWFjIlECAVw/PhMDWGBecA==.1207046723.2629.219911.7a9b79435be5fcc29e91a257ed3f2685; yandex_login=alb2772; my=YxwBAR4CAAAjAQEA; yabs-frequency=/2/tICx03K39qDKEm0r0o49mJa0DGCdJ4mx03K3F41KEm0r0oTqcZe0CGCdtfaw03439-GGEm0n0oLj0Ze0BmCdbVSv02y39pYEEW0l0oVKHZe0BmCdY04w02y39p3ACG0l0zm1kZW06WDy//fG8r0mU00O44W040; yandexuid=2162831145697770; yandex_nickname=; yandex_mail=alb2772; Session_id=1207046723.0.0.36496181.2:94331354:15.48096.2210.20a4103f1b3f1b4831022293a1e78307


в итоге переходит сюды:

Код
GET /pda/done?autosave=&fid=&idcs=&mark_as=&retpath=&spam=1&storedmid=1630000000264531351&style=pda&subject=%D1%85%D0%B0%D0%B9&where= HTTP/1.1
Host: mail.yandex.ru
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.8.1.13) Gecko/20080311 Firefox/2.0.0.13
Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
Accept-Language: ru-ru,ru;q=0.8,en-us;q=0.5,en;q=0.3
Accept-Encoding: gzip,deflate
Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Connection: keep-alive
Referer: http://mail.yandex.ru/pda/compose
Cookie: L=XmBTVmVBcldpelx+AAdcXnxxfgdgZFZZRjxkVl4QEAMbPCAVfR0iNikJVSRZMnVdUWFjIlECAVw/PhMDWGBecA==.1207046723.2629.219911.7a9b79435be5fcc29e91a257ed3f2685; yandex_login=alb2772; my=YxwBAR4CAAAjAQEA; yabs-frequency=/2/tICx03K39qDKEm0r0o49mJa0DGCdJ4mx03K3F41KEm0r0oTqcZe0CGCdtfaw03439-GGEm0n0oLj0Ze0BmCdbVSv02y39pYEEW0l0oVKHZe0BmCdY04w02y39p3ACG0l0zm1kZW06WDy//fG8r0mU00O44W040; yandexuid=2162831145697770; yandex_nickname=; yandex_mail=alb2772; Session_id=1207046723.0.0.36496181.2:94331354:15.48096.2210.20a4103f1b3f1b4831022293a1e78307

Спустя 3 часа, 43 минуты, 50 секунд (1.04.2008 - 18:14) Sylex написал(а):
Это мощная защита Яндекса от спаммеров acute.gif

Спустя 18 часов, 11 минут, 4 секунды (2.04.2008 - 12:25) lenich написал(а):
Проверьте правильно ли у вас сохраняются и передаются куки - CURLOPT_COOKIEJAR и т.д. или может из за того что вы файлнейм не передаете - мультипарт из за файлов делают.
Можно кстати просто установить smtp соединение с их сервером и отправить почту через него. Делал отправление через мейлру на джаве вполне работает, хотя тут посложней наверное будет.

Спустя 4 месяца, 29 дней, 11 часов, 9 минут, 50 секунд (31.08.2008 - 23:35) sneg19 написал(а):
Обрати внимание, в первом запросе ты параметры POST передаешь строкой а во втором масивом.
Вот тут и затык.

Добавь перед отправкой запроса такой кусок

Код
    $o = "";
    foreach ( $postdata1 as $k => $v )
    {
    $o .= "$k=" . utf8_encode ( $v ). "&";
    }
    $$postdata1 = substr ( $o , 0 ,- 1 );


По иде должно помочь acute.gif
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.