php обход писем на почте и переход по ссылкам
Просматривал старые архивы и набрел на один из своих скриптов. Он подключается к 110 почтовому порту сервера, запрашивает письма, ищет там ссылки, и делает к ним запрос на скачивание. В целом скрипт использовался для автоматической активации аккаунтов после регистрации на форумах.
php pop3 mail reader
<?php
$mail_server='host.com';
$mail_login='login@host.com';
$mail_pass='password';
function get_data($pop_conn){
$data="";
while (!feof($pop_conn)){
$buffer=chop(fgets($pop_conn,1024));
$data.="$buffer\r\n";
if(trim($buffer)==".")break;
}
return $data;
}
$pop_conn=fsockopen($mail_server,110,$errno,$errstr,10);
$text='';
$code=fgets($pop_conn,1024);
fputs($pop_conn,"USER ".$mail_login."\r\n");
$code= fgets($pop_conn,1024);
fputs($pop_conn,"PASS ".$mail_pass."\r\n");
$code= fgets($pop_conn,1024);
fputs($pop_conn,"STAT\r\n");
$stat=fgets($pop_conn,1024);
$stat_arr=explode(' ',$stat);
print_r($stat_arr);
$for=$stat_arr[1];
for ($i=1;$i<=$for;$i++){
fputs($pop_conn,"RETR ".$i."\r\n");
$text=get_data($pop_conn);
//fputs($pop_conn,"DELE ".$i."\r\n");//для удаления письма
//$buf=fgets($pop_conn);
print $text;
$first_link='';
preg_match_all("#http:\/\/(.*)\n#iUs",$text,$stock);
$first_link=$stock[1];
foreach ($first_link as $k => $v){
if(preg_match('#mailto\:#',$v)){
$v='';
}
else
if(preg_match('#\.(com|ru|org|su|net|ua|md|in|cm|info)/$#',$v)){
$v='';
}
else
if(preg_match('#\.(com|ru|org|su|net|ua|md|in|cm|info)/([_a-zA-Z0-9]*)/$#',$v)){
$v='';
}
else
if(preg_match('#\.(com|ru|org|su|net|ua|md|in|cm|info)/([_a-zA-Z0-9]*)/([_a-zA-Z0-9]*)/$#',$v)){
$v='';
}
else
if(preg_match('#\.(com|ru|org|su|net|ua|md|in|cm|info)$#',$v)){
$v='';
}
else
if(preg_match('#showthread\.php\?#',$v)){
$v='';
}
$v=str_replace('http://','',$v);
$v=str_replace('https://','',$v);
$v=str_replace("\n",'',$v);
$v=str_replace("\r",'',$v);
$v=str_replace("\t",'',$v);
if($v){
$temp=@file_get_contents('http://'.$v);
}
}
}
fputs($pop_conn,"QUIT\r\n");
fclose($pop_conn);
Возможно кому-то понадобится подобный исходник. preg_replace вроде использовал для фильтра ненужных ссылок.
Всем хороших выходных. :)
Дата записи: 03.02.2012 20:53
Предыдущая тема: Идея копирования сайта через php