• 19-03-2015, 11:45:24
    #1
    Merhaba.
    Mondo'nun mail enable sistemini kullanıyoruz.
    Bu sisteme php ile 1 kişinin mail kutusunun yüzde kaçı dolu nasıl görebiliriz?

    mesela

    aaa@bbb.com - 15 mb kullanıyor

    gibi.

    bu bilgi webmail e girdikten sonra sağ alt köşede yazıyor. teşekkürler.
  • 23-03-2015, 15:33:57
    #2
    Merhaba. Araştırmalarım sonucu bu işlemi curl ile yapabiliyorum. Bir kaç curl örneği buldum.

    Bana sadece login kısmı kaldı.

    http://mail.burulas.com.tr/Mondo/lang/sys/Login.aspx

    Adresindeki mondo mail için giriş bilgileri nedir?

    function curl($url, $post=false)
    {
        $user_agent = 'Mozilla/5.0 (Windows; U; Windows NT 5.1; tr; rv:1.9.0.6) Gecko/2009011913 Firefox/3.0.6';
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL, $url);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
        curl_setopt($ch, CURLOPT_POST, $post ? true : false);
        curl_setopt($ch, CURLOPT_POSTFIELDS, $post ? $post : false);
        curl_setopt($ch, CURLOPT_USERAGENT, $user_agent);
        $icerik = curl_exec($ch);
        curl_close($ch);
        return $icerik;
    }
    echo curl("http://www.siteadı.com/login.php", "user_login=kullanici&user_pass=sifre");
    buradaki user_login= kısmını txtUsername ve txtPassword kısımlarını normal tarayıcıma yazarak denedim ama giriş yapmadı. Doğal olarakta curl çalışmadı. Teşekkürler.

    mail.burulas.com.tr/Mondo/lang/sys/Login.aspx?txtUsername=deneme@deneme.com&txtPasswo rd=123456

    kısmı gerekiyor. Teşekkürler.
  • 23-03-2015, 17:22:35
    #3


    Bu verileri yolluyor tabi _viewstate kısmı nasıl oluşturuluyor onu bulman gerek.
  • 23-03-2015, 17:52:34
    #4
    pSkpt adlı üyeden alıntı: mesajı görüntüle


    Bu verileri yolluyor tabi _viewstate kısmı nasıl oluşturuluyor onu bulman gerek.
    Merhaba.
    Cevabınız için teşekkür ederim. Örnek kodlar yardımı ile herhalde girişi sağladım fakat bomboş bir ekran görünüyor. Kullandığım kodlar aşağıdadır. Ben nerede eksik yapıyorum? Teşekkürler.

    <?
    error_reporting(0);  
    function get_headers_from_curl_response($headerContent)
    {
    
        $headers = array();
    
        // Split the string on every "double" new line.
        $arrRequests = explode("\r\n\r\n", $headerContent);
    
        // Loop of response headers. The "count() -1" is to 
        //avoid an empty row for the extra line break before the body of the response.
        for ($index = 0; $index < count($arrRequests) -1; $index++) {
    
            foreach (explode("\r\n", $arrRequests[$index]) as $i => $line)
            {
                if ($i === 0)
                    $headers[$index]['http_code'] = $line;
                else
                {
                    list ($key, $value) = explode(': ', $line);
                    $headers[$index][$key] = $value;
                }
            }
        }
    
        return $headers;
    }
    function regexExtract($text, $regex, $regs, $nthValue)
    {
        if (preg_match($regex, $text, $regs)) {
            $result = $regs[$nthValue];
        }
        else {
             $result = "";
        }
    return $result;
    }
    $regexViewstate = '/__VIEWSTATE\" value=\"(.*)\"/i';
    $regexEventVal  = '/__EVENTVALIDATION\" value=\"(.*)\"/i';
    
    $ch = curl_init("http://mail.burulas.com.tr/Mondo/lang/sys/Login.aspx");
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_HEADER, 1);
    curl_setopt($ch, CURLOPT_COOKIEJAR, 'cookies.txt');
    
    $response = curl_exec($ch);
    curl_close($ch);
    
    $viewstate = regexExtract($response,$regexViewstate,$regs,1);
    $eventval = regexExtract($response, $regexEventVal,$regs,1);
    
    $params = array(
        '__EVENTTARGET' => '',
        '__EVENTARGUMENT' => '',
        '__VIEWSTATE' => $viewstate,
        '__EVENTVALIDATION' => $eventval, 
        'txtUsername' => 'login',
        'txtPassword' => 'pass',
        'dlLanguages' => 'tr',
        'ddlSkins' => 'Mondo',
    	'loginParam' => 'SubmitLogin',
    );
    
    $ch2 = curl_init("http://mail.burulas.com.tr/Mondo/lang/sys/Login.aspx");
    curl_setopt($ch2, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch2, CURLOPT_HEADER, 1);
    curl_setopt ($ch2, CURLOPT_POST, true);
    curl_setopt($ch2, CURLOPT_SSL_VERIFYPEER, FALSE);
    curl_setopt($ch2, CURLOPT_POSTFIELDS, http_build_query($params));
    curl_setopt ($ch2, CURLOPT_COOKIE,'cookies.txt');
    curl_setopt($ch2,CURLOPT_COOKIEJAR,'cookies2.txt');
    
    $response2 = curl_exec($ch2);
    curl_close($ch2);
    
    foreach(get_headers_from_curl_response($response2) as $value)
    {
        foreach($value as $key => $value2)
        {
            echo $key . ": " .$value2 . "<br />";
        }
    }
    preg_match_all('@<span id="lUsage">(.*?)</span>@si',$response2,$veri_derece1);
    
    echo $veri_derece1[0][0];
    
    ?>
    İstediğim lUsage kısmını ekrana yansıtmak hepsi o.

    Ekranın bana çıkardığı yazı da aşağıdadır.

    http_code: HTTP/1.1 100 Continue
    http_code: HTTP/1.1 302 Found
    Cache-Control: private
    Content-Length: 153
    Content-Type: text/html; charset=utf-8
    Location: /Mondo/lang/sys/default.aspx
    Server: Microsoft-IIS/7.5
    X-AspNet-Version: 2.0.50727
    Set-Cookie: NSC_DMVTUFS13_XFCNBJM=ffffffff5d41a04b45525d5f4f58455e445a4a423660;expires=Mon, 23-Mar-2015 16:19:20 GMT;path=/;httponly
    X-Powered-By: ASP.NET
    Date: Mon, 23 Mar 2015 15:49:58 GMT
    Ekranın çıktısı da bu. Teşekkürler.
  • 23-03-2015, 18:29:31
    #5
    error_reporting(0); satırını silip varsa ekranda çıkan hatayı yazınız.
  • 24-03-2015, 08:16:23
    #6
    pSkpt adlı üyeden alıntı: mesajı görüntüle
    error_reporting(0); satırını silip varsa ekranda çıkan hatayı yazınız.
    Merhaba.
    Cevabınız için teşekkür ederim,
    Maalesef error_reporting(0); satırını silmeme rağmen hiçbir hata çıkmadı. Yukarıda yazanların aynısı çıktı.

    Yardımlarınız için teşekkür ederim.