Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # -*- coding: utf-8 -*-
- import sys
- import httplib
- import urllib
- import re
- import urllib2
- import uuid
- user = '***@bk.ru'
- pswd = '***'
- # 1 - если хотите использовать TOR
- using_tor = 0
- if using_tor:
- socks.setdefaultproxy(socks.PROXY_TYPE_SOCKS5, '127.0.0.1', 9150)
- socket.socket = socks.socksocket
- _ua = 'Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/30.0.1599.101 Safari/537.36' # если оставить пустым передаст что-то типа "Python-urllib/2.7"
- _cookie = ''
- def auth(login, password):
- conn = httplib.HTTPConnection('m.mail.ru')
- conn.request('HEAD', '/cgi-bin/auth?Login=' + urllib.quote(login)+ '&Password=' + urllib.quote(password), headers={'User-Agent': _ua})
- res = conn.getresponse()
- if res.status == 302:
- location = res.getheader('location')
- if 'https://e.mail.ru/messages/inbox/?back=1' == location:
- global _cookie
- params = re.findall(r'(?:^|(?<=, ))\w+=[^;]+', res.getheader('set-cookie'))
- _cookie = '; '.join(params)
- return True
- return False
- def fetch_path(uri, content=None, add_headers={}):
- headers = {
- 'User-Agent': _ua,
- 'Cookie': _cookie
- }
- headers.update(add_headers)
- print headers
- req = urllib2.Request('https://m.mail.ru/' + uri, content, headers)
- return urllib2.urlopen(req)
- def send_mail(to, subject, body):
- resp = fetch_path('/compose/')
- # извелекаем значения скрытых полей
- fields = re.findall('<input type="hidden" name="([^"]+)" value="([^"]*)" />', resp.read())
- fields += [
- ('To', to),
- # ('CC', ''),
- # ('BBC', ''),
- ('Subject', subject),
- ('Body', body),
- ('send', '')
- ]
- # boundary = uuid.uuid4().hex
- # resp = fetch_path('/compose/', '', {'Content-Type': 'multipart/form-data; boundary=' + boundary})
- resp = fetch_path('/compose/', urllib.urlencode(dict(fields)), {'Content-Type': 'application/x-www-form-urlencoded'})
- if resp.code == 200:
- s = resp.read().decode('utf-8')
- if s.find(u'Письмо отправлено — Почта Mail.Ru</title>') > 0:
- return True
- return False
- if auth(user, pswd) == False:
- print u'Ошибка: неправильный логин либо пароль'.encode(sys.stdin.encoding)
- sys.exit(0)
- to = raw_input(u'Введите адрес получателя: '.encode(sys.stdin.encoding))
- subject = raw_input(u'Тема письма: '.encode(sys.stdin.encoding))
- print u'Текст письма:\n\n'.encode(sys.stdin.encoding)
- body = ''
- while True:
- body += raw_input() + '\n'
- if body[-2:] == '\n\n':
- break
- body = body.strip()
- # заебался с этими кодировками
- subject = subject.decode(sys.stdin.encoding).encode('utf-8')
- body = body.decode(sys.stdin.encoding).encode('utf-8')
- if send_mail(to, subject, body):
- print u'Письмо отправлено'.encode(sys.stdin.encoding)
- else:
- print u'Ошибка при отправке письма'.encode(sys.stdin.encoding)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement