Как авторизоваться в почте Mail.ru на PHP. Версия 2.0: с учетом GET запроса и HTTPS

Как выяснилось способ программной авторизации на почтовом веб-сервисе популярного портала Mail.ru, представленный мною ранее больше не работает. Причина простая и достаточно банальная, — теперь для входа в ящик используется HTTPS вместо HTTP.  Плюс вместо POST-запроса теперь можно слать GET. Потому далее я приведу новый пример скрипта на PHP, который учитывает эти особенности.

<?php
# Задаем параметры учетной записи: логин, пароль, домен (mail.ru, list.ru, bk.ru и т.п.).
$login = 'programmer@mail.ru';
$password = '34738v%FDcv&#fdfe3';
$domain = 'mail.ru';

# Прописываем User Agent "от балды".
# Куки сохраняем в папку со скриптом, в одноименный документ *.txt.
$user_agent = 'Mozilla/5.0 (compatible; MJ12bot/v1.4.3; http://www.majestic12.co.uk/bot.php?+)';
$cookies = dirname(__FILE__) . '/cookies.txt';

# Начинаем, cURL:
$red_book_cms = curl_init();

# Задаем User Agent ("браузер" нашего псевдо пользователя),
# Задаем источник перехода - реферера.
# cURL будет ждать выполнения функций не более 10 секунд.
curl_setopt($red_book_cms, CURLOPT_USERAGENT, $user_agent);
curl_setopt($red_book_cms, CURLOPT_REFERER, "http://mail.ru/");
curl_setopt($red_book_cms, CURLOPT_TIMEOUT, 10);

# Ссылка с GET-запросом для авторизации на почте mail.ru:
curl_setopt($red_book_cms, CURLOPT_URL, 
        "https://auth.mail.ru/cgi-bin/auth?Domain=$domain&Login=$login&Password=$password");

# Не будем проверять SSL сертификат и Host SSL сертификата
curl_setopt($red_book_cms, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($red_book_cms, CURLOPT_SSL_VERIFYHOST, false);

# Разрешаем возвращать содержимое страницы.
# Если понадобится, тогда автоматом переходим по перенаправлениям.
curl_setopt($red_book_cms, CURLOPT_RETURNTRANSFER, true);
curl_setopt($red_book_cms, CURLOPT_FOLLOWLOCATION, true);

# Работаем с куками, cookies:
curl_setopt($red_book_cms, CURLOPT_COOKIEFILE, $cookies);
curl_setopt($red_book_cms, CURLOPT_COOKIEJAR, $cookies);

# Запускаемся:
$html = curl_exec($red_book_cms);

// print curl_getinfo($red_book_cms, CURLINFO_HTTP_CODE);
# Для примера откроем список писем во Входящие:
curl_setopt($red_book_cms, CURLOPT_URL, "https://e.mail.ru/messages/inbox/?back=1");
$html = curl_exec($red_book_cms);

# Закрываемся:
curl_close($red_book_cms);

# Выводим содержимое веб-страницы в окошко браузера:
print $html;
?>

Пожалуйста не забудьте в заголовке приведенного здесь программного кода вписать данные вашей учетной записи. Cookies будут сохраняться в текстовый файл, в том же каталоге, откуда вы запустите «бота».

Опубликовано 10-10-2013 в 10:59


Комментариев к записи: 2

  1. zadrot:

    не работает больше

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>











Свежие комментарии

  • krasnov8953: к записи Не работает как мне кажется строчка $newTvId = $ »
  • Dimanski: к записи ничего не понимаю. Ставлю ModX на хостинг r01.ru »
  • Дмитрий: к записи Спасибо! Очень выручили. С битриксом беда, а прав »
  • леонид: к записи как сделать что были в ряд? у меня получается по о »
  • Администратор: к записи Статический IP. »
  • Steel: к записи Администратор, вы данную проблему решили подключен »
  • Дмитрий: к записи Хотел узнать как прикрутить данное окно (http://re »

Последние твиты