PDA

Просмотр полной версии : Сохранение архив mail.ru агента


Serrg
05.01.2012, 04:24
Добрый всем день..

Нужен ваш совет, возможно ли с mail.ru Скачать Архив mail.ru агента.

очень буду блогадарен за ответы.. Заранее спасибо. !

P.S

Писал в службу поддержки mail.ru, мне ответили сказав что данный функционал у них отсутствует.. Но ведь Переписка сохроняется на серверах, Значит можно как то скачать или На крайний случай сохранить, через программы: "teleport pro" и "offline explorer" не выходит...

P.S.S уважаемые Модераторы Простите меня за создание второй темы.. Там просто както глухо, я покапался и нашол где частенько заходят на какие разделы.. и Создал здесь

Будем честны ))

попугай
05.01.2012, 04:26
Только архив, сохраненный на локальном компьютере.

Serrg
05.01.2012, 04:32
Мне так стало интересно, почему mail.ru не могу предоставить такую информацию, ведь это моя переписка и под использование личной информации это не подподает !

Fepsis
05.01.2012, 04:37
Да в принципе можно сохранить, только писать софтину/скрипт под это дело нужно...

Serrg
05.01.2012, 05:03
Я не привык просить, я не умею писать.. только учусь.. Но если кому вдруг нечего делать, не мог бы ктонибудь это зделать (не бесплатно конечно)

P.S Меня папа учил что ничего бесплатно не делается и за все надо платить

Fepsis
05.01.2012, 07:09
Ну собственно делать было нечего, вот набросал:


Code:
#!/usr/bin/perl

use LWP::UserAgent;
use HTTP::Cookies;

################# Config ###############

my $email = 'yourmail@mail.ru';
my $pass = 'yourpass';

############### End Config ##############

my $ua = LWP::UserAgent->new;
$ua->agent("Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.0.19) Gecko/2010031422 Firefox/3.0.19");
my $cookie_jar = HTTP::Cookies->new();
$ua->cookie_jar($cookie_jar);

sub logg
{
my ($data, $file) = @_;
open(OUT, "> ".$file);
print OUT "$data\n";
close(OUT);
}

sub authorization
{
my ($email, $pass) = @_;

my ($login, $domain) = $email =~ /^(.+?)@(.+?)$/;

$cookie_jar->clear();

my $ex = $ua->post('http://win.mail.ru/cgi-bin/auth', ['Login' => $login, 'Domain' => $domain, 'Password' => $pass]);

if ($ex->headers_as_string() =~/Set-Cookie: Mpop=/)
{
return 1;
}
}

sub get_users
{
my $ex = $ua->post('http://e.mail.ru/cgi-bin/mrimhistory?', ['mrim_hist_password' => $pass, 'PasswordAsk' => 'on'], Referer => 'http://e.mail.ru/cgi-bin/mrimhistory')->content();

my @allusers = $ex =~ /class=letavtor title=\"(.+?)\"/g;

while(1)
{
my ($nextpage) = $ex =~ //;
last if (!$nextpage);

$ex = $ua->get('http://e.mail.ru/cgi-bin/'.$nextpage)->content();
my @users = $ex =~ /class=letavtor title=\"(.+?)\"/g;

foreach (@users)
{
push(@allusers, $_);
}

}

return @allusers;
}

sub get_messages
{
my ($user) = @_;
my $i = 0;
my $ex = $ua->get('http://e.mail.ru/cgi-bin/mrimhistory?mode=1&email='.$user)->content();

my @allmess = $ex =~/(.+?).+?(.+?).+?/gs;

while(1)
{
my ($nextpage) = $ex =~ //;
last if (!$nextpage);

$ex = $ua->get('http://e.mail.ru/cgi-bin/'.$nextpage)->content();
my @mess = $ex =~/(.+?).+?(.+?).+?/gs;

foreach (@mess)
{
push(@allmess, $_);
}

print "\t\tpage:".$i++."\n";

}

my $arhive = '';

while(@allmess)
{
my $data = pop(@allmess);
my $message = pop(@allmess);
my $name = pop(@allmess);

$arhive .= $name.' : '.$data."
\r\n".$message."

\r\n\r\n";

}

logg($arhive, $user.'.html');

}

authorization($email, $pass);
my @allusers = get_users();
print "Users: ".scalar(@allusers)."\n\n\n";

foreach (@allusers)
{
print "\t".$_."\n";
get_messages($_);

}


Ставишь активперл от сюда: http://www.activestate.com/activeperl/downloads

Сохраняешь скрипт как script.pl

Изменяешь

my $email = 'yourmail@mail.ru';

my $pass = 'yourpass';

на свои значения, сохраняешь, запускаешь...

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

У меня всё работает, правда большие архивы довольно долго загружает, хз, возможно у меня интернет не особо шустрый...

За внешний вид кода сорри, особо не заморачивался... и над красивой реализацией тоже...

makag
05.01.2012, 09:10
Fepsis спасибо огромное, работает отлично!

Внешний вид - не суть, главное работает на ура!

Serrg
05.01.2012, 09:19
Спасибо.. Огромное !.. Ты просто офигенский.. 2 года не знал как сделать, а написал на ачат и получил скрипт за 1 час !

Serrg
14.01.2012, 21:25
Работает без сбоев ))

rbb5
15.01.2012, 16:49
а можно тоже самое сделать в html форме.очень нада.или это не риально

Serrg
15.01.2012, 19:45
А чем тебе не устраивает на perl, там же инструкция все дела.. Все просто на мой взгляд, а главное работает.. Я в интернете искал 2 года этот функционал.. Я рад тому что есть ))

rbb5
16.01.2012, 17:23
если будет в html.сделаю приукрашу. поставлю на загрузку в опере.когда моя девушка будет входить в почту.вся её переписка будет у меня.типа фейка будет

Serrg
16.01.2012, 19:06
А ну понятно, ) попробуй может получиться.. У меня пока в голове не предстовляется как это будет __)

Fepsis
17.01.2012, 16:42
rbb5 said:
а можно тоже самое сделать в html форме.очень нада.или это не риально


Не понятно... Что значит в хтмл форме..?!

Serrg
18.01.2012, 11:53
Ну он имеет ввиду.. Типа фейка.. Чтобы отпровляешешь человеку меняешь хост, у него открываеться страница фейка человек вводит пароль, и автору копируеться история.. Я так понимаю !))

rbb5
18.01.2012, 12:02
Fepsis, ну эта написана на перл,а если вот эти функции твоего файла будут в формате страници оперы??? как фейк на маил(или на какой другой почтовый сервер)в поле пароль логин вписываеш свои данные.нажымаеш воити. а он в свою очередь качать периписку как твой фаил.главно чтобу в html страничке присутствовали твои функции.а вид я и сам бы сделал под любой почтовик

rbb5
18.01.2012, 12:12
Serrg

точно так тоже можно)))

1вареант.

Этот фаил будет у меня на компе. и когда ктото у меня будет пытаться войти на почту,будет вводить логин пароль нажимать отправить,вся его история будет тут же сохранятся у меня(может будет вопрос почему не сохранить пароль и потом воити,пароль могут поменять)(ну и еще тогода чтоб пароль отдельно сохранялся тоже).

2е.

собрать фейк, типа отправляю ие подложное письмо(мои проблемы будет ли она его и как прочитает)почти те же функции ,вводит логин пароль и ее переписка отправляется на мою почту(2Й СПОСОБ РЕАЛЬНЫЙ,,, ИЛИ НЕТ)

rbb5
18.01.2012, 12:15
если лень думать и не интересно,давайте ЗАПЛОЧУ за этот функционал)))говорите цену............(но в рамках приличного)поимите тоже

Serrg
18.01.2012, 12:31
Ну второй способ реальнее чем первый.. Конечно, хотя первый тоже осуществим.. Давайте дальше развивать может кто возьметься )

rbb5
21.01.2012, 17:36
ну что мужики как дела или ни кто не занялся

Alexandr II
21.01.2012, 17:45
rbb6, в чем проблема? сделай фейк простой, отправь ей, после чего узнай пароль и вводи его в этот скрипт)

зачем соединять фейк со скриптом?)

Fepsis, молодец!!! +1)

Serrg
21.01.2012, 18:48
Там самое интересное, что когда вводишь пароль в скрипт и скачиваешь историю.. То человек не заходит на сайт.. т.е Когда историю качаешь это делаешь анонимно )) Даже зная пароль другого человека, он не узнает никогда что ты его историю скачал )

Mityay
31.01.2012, 04:00
Fepsis said:
Ну собственно делать было нечего, вот набросал....



вот у меня по поводу всего этого несколько вопросов:

1. он почему не индексирует почту .....@inbox.ru

2. архив более 203 страниц он не делает, 203 страницы и всё, дальше начинает следующего, хотя на самом деле у меня страниц 800 переписки... с чем это может быть связанно?

3. возможно ли как то изменить код что бы он вытаскивал архив не со всеми пользователями, а с кем то конкретным? т.е. что бы я указал почту и он только её и вытащит мне

Serrg
01.02.2012, 02:53
конкретный пользователь

Опять же за все спасибо Fepsis-у )) Не знаю как у тебя но у меня все 2156 страниц сохранились, а по поводу конкретного пользователя то вот..

отпускаешь в самый низ и в место


Code:
authorization($email, $pass);
my @allusers = get_users();
print "Users: ".scalar(@allusers)."\n\n\n";

foreach (@allusers)
{
print "\t".$_."\n";
get_messages($_);

}


пишешь вот это:


Code:
authorization($email, $pass);
my @allusers = get_users();
get_messages('Сюда логин друга');

Mityay
01.02.2012, 09:03
Serrg said:
Опять же за все спасибо Fepsis-у )) Не знаю как у тебя но у меня все 2156 страниц сохранились, а по поводу конкретного пользователя то вот..


благодарю

bnk204
17.02.2012, 08:57
а как сделать наоборот, чтобы сохранил всех кроме одного пользователя и где можно прописать папку сохранения?

bekkuz
17.02.2012, 18:52
А можно ли задать период времени за который нужно скачать сообщении? И почему так медленно качается?

Доволен вашим скриптом почти на 100%. Спасибо большое.

BitaLL
17.02.2012, 19:12
присоединяюсь к предыдущему посту

Fepsis
17.02.2012, 21:50
bnk204 said:
а как сделать наоборот, чтобы сохранил всех кроме одного пользователя и где можно прописать папку сохранения?


Вместо:


Code:
foreach (@allusers)
{
print "\t".$_."\n";
get_messages($_);

}

напиши:


Code:
foreach (@allusers)
{
if($_ ne 'eto_milo_propusti@mail.ru')
{
print "\t".$_."\n";
get_messages($_);
}

}

eto_milo_propusti@mail.ru - скрипт пропустит (заменить на то что нужно)


bekkuz said:
А можно ли задать период времени за который нужно скачать сообщении? И почему так медленно качается?
Доволен вашим скриптом почти на 100%. Спасибо большое.


Сделать конечно можно, но к сожаленью у меня сейчас со свободным временем туго.. По поводу того что медленно работает, да я это тоже заметил.. Скрипт вообще имитирует поведение пользователя, который зашёл в архив и прошёлся по всем страницам с сообщениями... Я сам никаких задержек не ставил, так что могу предположить, что это какое-то ограничение mail.ru...

Тут ещё в ПМ писали с просьбой сделать многопоточным... Опять же, сорри, парни, пока не до этого... Умельцев на форуме много, может кто возьмётся..)

BitaLL
18.02.2012, 05:39
Fepsis всёравно агомное спасибо=))))

а теперь ждём умельцев

Jast Noob
18.02.2012, 19:56
Fepsis, большое спасибо!

[BES]
04.03.2012, 00:32
Fepsis

а для домена @list.ru

такой же алгоритм действий ?

что то не получается

и при запуске скрипта, агент должен быть включен ? или не имеет значения ?

makag
04.03.2012, 02:14
скрипт вытягивает историю переписки агента из "Архив Mail.Ru Агента", которая в почте. у меня агент был выключен)

порядок действий вроде как аналогичен - установить перл, запустить батник, ждать результат.

Результат будет, если в самой почте включено сохранение сообщений агента.

з.ы. ну или давай через Team Viewer попробую подсказать, если трудности возникают

[BES]
04.03.2012, 03:18
makag

разобрался уже, спасибо

Serrg
06.03.2012, 14:13
'

а для домена @list.ru

такой же алгоритм действий ?

что то не получается

и при запуске скрипта, агент должен быть включен ? или не имеет значения ?

Не важно включен или нет..

Алгоритм такой: что скрипт сохраняет не по волшебству, а как будто вы заходите в опере в файл> сохранить страницу, только скрипт сам листает и сам сохраняет в один файл !

fatality666
25.03.2012, 00:17
Добрый вечер

1) Неплохо бы модернизировать скрипт, что бы он сохранял например 10 страниц с последними сообщениями; или вообще чтобы можно было скачать страницы например с 20 по 50

2)как исключить/скачать сразу несколько контактов? (в теме был пример на только на один контакт)

3)А нет ли такого же скрипта для вконтакте?

Serrg
25.03.2012, 22:36
добрый вечер и тебе) судя по тому как он сохраняет не используя ни капчу ничего и работает по принципу сохранить страницу.. То для опытных кодеров, я думаю что даже для не очень опытных это не составит труда, а на вопрос как добавить больше одного.. Я не кодер но в догадках есть.. Поставить или через запятую или полностью продублировать тот кусочек но уже с другим адресом.. Как говорится методом проб и ошибок, я бы попробывал но я сейчас на работе.. Ну а так напиши фепсису, но я бы сам попытался догодаться))

С уважением Сергей!

ermech
01.04.2012, 00:05
Извените если вопрос глупый..Я новичок..Я сделал всё как написано, тока я одного не могу понять, куда эти архивы сохраняются??

fatality666
01.04.2012, 00:40
В папку со скриптом сохраняются

ermech
01.04.2012, 04:16
Не отображает русские буквы...Как можно исправить??

grandmasterbit
01.04.2012, 11:22
ermech said:
Не отображает русские буквы...Как можно исправить??


Измените кодировку на UTF-8

Serrg
01.04.2012, 21:19
В "opera"

Вид -> Кодировка -> Юникод -> UTF-8

neprostotak8
07.04.2012, 10:55
Взял скрипт, написанный Fepsisом и набросал на его основе программку с графическим интерфейсом. Чтобы удобнее было, ну и типа программа для скачивания архива агента готовая. Вот ссылки если кому интересно:

http://www.shared.uz/?0566225001333513039

http://exfile.ru/342817

http://www.fayloobmennik.net/1746199

mathew2000
07.04.2012, 16:42
neprostotak8 said:
Взял скрипт, написанный Fepsisом и набросал на его основе программку с графическим интерфейсом. Чтобы удобнее было, ну и типа программа для скачивания архива агента готовая. Вот ссылки если кому интересно:
http://www.shared.uz/?0566225001333513039
http://exfile.ru/342817
http://www.fayloobmennik.net/1746199


virustotal на архив ругается.

Serrg
07.04.2012, 17:45
я конечно понимаю что когда скрипт в оболочке то это классно и довольно удобно.. Но мне например вполне удобно и так работать)

Serrg
07.04.2012, 17:54
neprostotak8 said:
Взял скрипт, написанный Fepsisом и набросал на его основе программку с графическим интерфейсом. Чтобы удобнее было, ну и типа программа для скачивания архива агента готовая. Вот ссылки если кому интересно:
http://www.shared.uz/?0566225001333513039
http://exfile.ru/342817
http://www.fayloobmennik.net/1746199


И на архив, а в файле loader.exe вообще полный букет..))

neprostotak8
17.04.2012, 13:45
Когда писал кстати, каспер тоже матерился. Пом енял некоторые строки местами, перестал. Почему, я сам ен понял. А что в нем находит вирустотал?

Alibek123456
09.08.2012, 13:21
Ошибка

Привет всем форумчанинам. Я заметил некоторую недоработку в скрипте. Например я запускаю скрипт он начинает считать сколько у меня контактов а потом считывает страницы,после завершения задачи захожу в папку где находиться мой скрипт открываю html файлы и там сохранённая переписка, НО почему то некоторые периписки с контактами не сохраняются(хотя в архиве переписка с ними есть) когда открываешь этот html файл там пусто. анекоторые сохраняются, а некоторые нет. может проблема в том что много контактов(315),просто ощущение как будто скрипт теряет соединение с сервером(инет не отключался). МОжет кто нибудь проверит на наличие ошибок и доработает скрипт? Да и ещё когда внизу меняешь скрипт чтобы он скачал переписку с определённым контактом он почему то не сохраняет всю переписку,а сохраняет лишь последние,а мне нужны архивы и 2010 года,а мне сохраняет последние с 2012 года. ЗЫ я проверял в архиве там есть сообщения за 2010 год. модернизируйте скрипт. или может я что то нитак делаю

G13
22.08.2012, 10:14
скачивает полностью всю историю архива? за все время жизни почтового ящика ?

Serrg
24.08.2012, 00:21
G13 said:
скачивает полностью всю историю архива? за все время жизни почтового ящика ?


Нет, только та переписка если стояла галочка "Сохранять архив mail.ru агента"С момента когда она стояла, если галочка не была снята 10 лет то переписка соответственно за 10 лет )))

serjwork1
27.08.2012, 15:18
честно сказать не понимаю зачем создавать топик если на форуме есть то что вы ищете , поюзайте))

bnk204
28.06.2013, 21:10
Уважаемый Fepsis, раньше хорошо качала, но все равно не весь архив скачивает, а щас совсем плохо, можете доработать код, или есть ли еще подобные программы?

MiLSaN
06.08.2013, 12:35
Скрипт рабочий. просто в маил.ру изменились ссылки, вот подправил:


Code:
#!/usr/bin/perl

use LWP::UserAgent;
use HTTP::Cookies;

################# Config ###############

my $email = 'login@mail.ru';
my $pass = 'pass';

############### End Config ##############

my $ua = LWP::UserAgent->new;
$ua->agent("Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.0.19) Gecko/2010031422 Firefox/3.0.19");
my $cookie_jar = HTTP::Cookies->new();
$ua->cookie_jar($cookie_jar);

sub logg
{
my ($data, $file) = @_;
open(OUT, "> ".$file);
print OUT "$data\n";
close(OUT);
}

sub authorization
{
my ($email, $pass) = @_;

my ($login, $domain) = $email =~ /^(.+?)@(.+?)$/;

$cookie_jar->clear();

my $ex = $ua->post('http://win.mail.ru/cgi-bin/auth', ['Login' => $login, 'Domain' => $domain, 'Password' => $pass]);

if ($ex->headers_as_string() =~/Set-Cookie: Mpop=/)
{
return 1;
}
}

sub get_users
{
my $ex = $ua->post('http://e.mail.ru/agent/archive/', ['mrim_hist_password' => $pass, 'PasswordAsk' => 'on'], Referer => 'http://e.mail.ru/agent/archive/')->content();

my @allusers = $ex =~ /class=letavtor title=\"(.+?)\"/g;

while(1)
{
my ($nextpage) = $ex =~ //;
last if (!$nextpage);

$ex = $ua->get('https://e.mail.ru/agent/archive?folder=500005'.$nextpage)->content();
my @users = $ex =~ /class=letavtor title=\"(.+?)\"/g;

foreach (@users)
{
push(@allusers, $_);
}

}

return @allusers;
}

sub get_messages
{
my ($user) = @_;
my $i = 0;
my $ex = $ua->get('http://e.mail.ru/agent/archive?mode=1&email='.$user)->content();

my @allmess = $ex =~/(.+?).+?(.+?).+?/gs;

while(1)
{
my ($nextpage) = $ex =~ //;
last if (!$nextpage);

$ex = $ua->get('https://e.mail.ru/agent/archive?folder=500005'.$nextpage)->content();
my @mess = $ex =~/(.+?).+?(.+?).+?/gs;

foreach (@mess)
{
push(@allmess, $_);
}

print "\t\tpage:".$i++."\n";

}

my $arhive = '';

while(@allmess)
{
my $data = pop(@allmess);
my $message = pop(@allmess);
my $name = pop(@allmess);

$arhive .= $name.' : '.$data."
\r\n".$message."

\r\n\r\n";

}

logg($arhive, $user.'.txt');

}

authorization($email, $pass);
my @allusers = get_users();
print "Users: ".scalar(@allusers)."\n\n\n";

foreach (@allusers)
{
print "\t".$_."\n";
get_messages($_);

}



Ставишь активперл от сюда: http://www.activestate.com/activeperl/downloads
Сохраняешь скрипт как script.pl
Изменяешь
my $email = 'yourmail@mail.ru';
my $pass = 'yourpass';
на свои значения, сохраняешь, запускаешь...
В папке со скриптом должны начать появляться файлы с архивами под каждого юзера, с кем шла переписка, но в принципе формат на выходе можно сделать любой, тоесть можно всё в один файл записать или ещё как...

neocube_kst
18.10.2013, 20:50
MiLSaN said:
Скрипт рабочий. просто в маил.ру изменились ссылки, вот подправил:

Code:
#!/usr/bin/perl

use LWP::UserAgent;
use HTTP::Cookies;

################# Config ###############

my $email = 'login@mail.ru';
my $pass = 'pass';

############### End Config ##############

my $ua = LWP::UserAgent->new;
$ua->agent("Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.0.19) Gecko/2010031422 Firefox/3.0.19");
my $cookie_jar = HTTP::Cookies->new();
$ua->cookie_jar($cookie_jar);

sub logg
{
my ($data, $file) = @_;
open(OUT, "> ".$file);
print OUT "$data\n";
close(OUT);
}

sub authorization
{
my ($email, $pass) = @_;

my ($login, $domain) = $email =~ /^(.+?)@(.+?)$/;

$cookie_jar->clear();

my $ex = $ua->post('http://win.mail.ru/cgi-bin/auth', ['Login' => $login, 'Domain' => $domain, 'Password' => $pass]);

if ($ex->headers_as_string() =~/Set-Cookie: Mpop=/)
{
return 1;
}
}

sub get_users
{
my $ex = $ua->post('http://e.mail.ru/agent/archive/', ['mrim_hist_password' => $pass, 'PasswordAsk' => 'on'], Referer => 'http://e.mail.ru/agent/archive/')->content();

my @allusers = $ex =~ /class=letavtor title=\"(.+?)\"/g;

while(1)
{
my ($nextpage) = $ex =~ //;
last if (!$nextpage);

$ex = $ua->get('https://e.mail.ru/agent/archive?folder=500005'.$nextpage)->content();
my @users = $ex =~ /class=letavtor title=\"(.+?)\"/g;

foreach (@users)
{
push(@allusers, $_);
}

}

return @allusers;
}

sub get_messages
{
my ($user) = @_;
my $i = 0;
my $ex = $ua->get('http://e.mail.ru/agent/archive?mode=1&email='.$user)->content();

my @allmess = $ex =~/(.+?).+?(.+?).+?/gs;

while(1)
{
my ($nextpage) = $ex =~ //;
last if (!$nextpage);

$ex = $ua->get('https://e.mail.ru/agent/archive?folder=500005'.$nextpage)->content();
my @mess = $ex =~/(.+?).+?(.+?).+?/gs;

foreach (@mess)
{
push(@allmess, $_);
}

print "\t\tpage:".$i++."\n";

}

my $arhive = '';

while(@allmess)
{
my $data = pop(@allmess);
my $message = pop(@allmess);
my $name = pop(@allmess);

$arhive .= $name.' : '.$data."
\r\n".$message."

\r\n\r\n";

}

logg($arhive, $user.'.txt');

}

authorization($email, $pass);
my @allusers = get_users();
print "Users: ".scalar(@allusers)."\n\n\n";

foreach (@allusers)
{
print "\t".$_."\n";
get_messages($_);

}



Скрипт на данный момент работает?

Просто у меня почему то ничего не сохраняется.

Только командная строка моргнет исчезает.

Кто нибудь может мне помочь?

Davud134
28.10.2013, 00:04
Народ такая проблема все сделал как было написано

Он записывает только начало

тоесть 1 страницу

а птом просто считает дальше

Ground
06.03.2014, 18:13
Товарищи! Может кто-нибудь поможет починить парсер? Мейл изменил все до неузнаваемости, сам не могу раскурить скрипт, чтобы поправить, ибо с перлом особо не работал...