Найти - Пользователи
Полная версия: Отправка сообщения mail.ru
Начало » Python для новичков » Отправка сообщения mail.ru
1
srthgfi
Доброго времени суток!
Есть один код:
# -*- coding: cp1251 -*-
import urllib, urllib2, cookielib, re
class mail_http_client:
    def __init__(self, proxy=None, user_agent='Mozilla/5.0 (X11; U; Linux i686; ru; rv:1.9.2.3) Gecko/20100423 Ubuntu/10.04 (lucid) Firefox/3.6.3'):      
        self.cookie_handler   = urllib2.HTTPCookieProcessor(cookielib.CookieJar())
        self.redirect_handler = urllib2.HTTPRedirectHandler()
        self.http_handler     = urllib2.HTTPHandler()
        self.https_handler    = urllib2.HTTPSHandler()
 
        self.opener = urllib2.build_opener(self.http_handler,
                                           self.https_handler,
                                           self.cookie_handler,
                                           self.redirect_handler)
 
        if proxy:
            self.proxy_handler = urllib2.ProxyHandler(proxy)
            self.opener.add_handler(self.proxy_handler)
   
        self.opener.addheaders = [('User-agent', user_agent)]
 
        urllib2.install_opener(self.opener)
 
    def request(self, url, params={}, timeout=5):
        if params:
            params = urllib.urlencode(params)
            html = urllib2.urlopen(url, params, timeout)
        else:
            html = urllib2.urlopen(url)
 
        return html.read()
aut = mail_http_client()
url = 'https://auth.mail.ru/cgi-bin/auth'
url1 = 'http://my.mail.ru/cgi-bin/my/ajax'
url2 = 'http://my.mail.ru'
mna_pattern = re.compile('<input  name="mna" type="hidden" value="(\d+)" />')
mnb_pattern = re.compile('<input  name="mnb" type="hidden" value="(-\d+)" />')
params = {'Domain':	'bk.ru',
          'Login':	'#########',
          'Password':	'###########',
          'level':	'1',}
res = aut.request(url, params)
res1 = aut.request(url1)
res2 = aut.request(url2)
mna0 = mna_pattern.findall(res2)
mnb0 = mnb_pattern.findall(res2)
a = mna0[0]
b = mnb0[0]
mna = '"' + mna0[0] + '"'
mnb = '"' + mnb0 [0]+ '"'
data = '["##########@mail.ru","testttttt","","",'+'"'+mna0[0]+'"'+'"'+mnb0[0]+'"]'
message_params = {      'ajax_call':  	'1',
                        'data':  	        data,
                        'encoding':       	'windows-1251',
                        'func_name': 	                        'dialogues.add_post',
                        'mna':  	a,
                        'mnb':  	b,}
res1 = aut.request(url1, message_params)
На такой запрос на отправку сообщения выдаёт
["AjaxResponse","OK","not_found"]
, т.е. сообщение не отправлено.
Подозреваю дело в mna и mnb
Внимание вопрос: если дело в них, то как их получить правильно? Если нет, то в чём дело?
odnochlen
А чем smtp не устраивает?
srthgfi
Да в принципе устраивает, только это у меня получается, а вот разобраться с тем, как отправлять запросы ajax'у или простому жабаскрипту я не понял, и инфы в нете не нашёл. Может подскажете? Или на мысль наведёте? Без таких знаний полноценного робота сделать не получится.
Или вот ещё трудности:
<img id="captchaimage" border="0" alt="Captcha image" valign="middle" src="https://domen.ru/captcha.php?' + Math.random()" onclick="javascript:$('#captchaimage').attr('src', 'https://domen.ru/captcha.php?' + Math.random())">
C помощью firebug получаю запрос https://domen.ru/captcha.php?%27%20+%20Math.random()
Ничего не происходит. Как получить капчу?
aarkhipov
А что возвращает captcha.php?
srthgfi
Поле, по клику на которое появляется капча
<input type="text" accesskey="c" size="28" name="captcha" onclick="javascript:captcha_show();return false;">
aarkhipov
А что возвращает captcha.php?
<img id="captchaimage" border="0" alt="Captcha image" valign="middle" src="https://domen.ru/captcha.php?0.8667418113874655" onclick="javascript:$('#captchaimage').attr('src', 'https://domen.ru/captcha.php?' + Math.random())">
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB