Форум сайта python.su
Добрый день.
Захожу на почту и отправляю себе на другое мыло тестовое сообщение.
from grab import Grab def sim(): g = Grab(log_file='out.html') g.setup(proxy='proxy', proxy_type='http', proxy_userpwd='user:pswd') g.go("https://e.mail.ru/") g.set_input("Login","login") g.set_input("Password","pswd") g.submit() print g.xpath_text("//*") g.go("https://e.mail.ru/compose/") g.set_input("To","mail") g.set_input("Subject","test") g.submit() print g.xpath_text("//*") sim()
<a class="button-a js-send" role="submit" tabindex="1" title="Ctrl+Enter">Отправить</a>
Отредактировано noob_saibot (Окт. 22, 2013 14:51:37)
Офлайн
Я, может быть, какую чушь “сморозил”, вы мне сообщите об этом… пожалуйста.
Офлайн
Посмотрите снифером, что отсылает Grab, далее посмотрите снифером, что отсылает браузер, далее сравните. Скорее всего вы не устанавливаете, какую-то POST-переменную при отсылке письма. В частности, проблема может быть в том, что вам нужно выставить имя submit-кнопки, на которую вы “нажимаете”. А т.к. этого имени нет, то майл действует по-умолчанию т.е. сохраняет письмо в черновики.
Офлайн
Сниффер поставить нет возможности. Я посмотрел что передается в пост с помощью logging (в принципе это же я и видел в firebug'е ):
POST request:
text : test
form_sign : 34342314925017715651296167803246089659
BCC :
To : email@email.ru
cancel : Отмена
message : 5pfZ5Y6G
Body :
–
F name S name
cloud_files_ids :
old_charset :
form_token : 05077a4e74457a73190706040d010204060d010605080002040302040500080f01010601090b030407070d0e03040d164a545e42554155
draft : Сохранить
actionId : 1
orfo : rus
direction : re
re_msg :
RealName : 0
CC :
security_image_word :
draft_msg :
HTMLMessage : 0
Filedata :
fwd_msg :
attached_ids :
files_id :
files_ids :
template_id :
Subject : test
Я так понял надо заполнить пустые поля чемто мне неизвестным, чтобы отправить письмо?
Есть идеи какой параметр прописать?
Отредактировано noob_saibot (Окт. 29, 2013 14:28:27)
Офлайн
Посмотрите в firebug, как браузер заполняет поля и сделайте так же.
Офлайн
Поля заполняются при создании письма, далее после отправки не меняются. Что-то лыжы у меня не едут…
Вот что нашел в firebug:
<form id="sentmsgcomposeForm" class="composeForm editorHTMLMode" enctype="multipart/form-data" name="Compose" method="post" action="/compose/" data-form-inited="yes"> <input type="hidden" value="" name="files_ids"> <input type="hidden" value="" name="actionId"> <input type="hidden" value="" name="text"> <input type="hidden" value="re" name="direction"> <input type="hidden" value="rus" name="orfo"> <input type="hidden" value="" name="form_sign"> <input type="hidden" value="" name="form_token"> <input type="hidden" value="" name="files_id"> <input type="hidden" value="" name="cloud_files_ids"> <input type="hidden" value="5pLcv1GF" name="message"> <input type="hidden" value="" name="old_charset"> <input type="hidden" value="" name="template_id"> <input type="hidden" value="1" name="HTMLMessage"> <input type="hidden" value="" name="draft_msg"> <input type="hidden" value="" name="re_msg"> <input type="hidden" value="" name="fwd_msg"> <input type="hidden" value="" name="attached_ids"> <input type="hidden" value="0" name="RealName"> <div id="sentmsgcomposeError" style="display: none;"></div> <div id="sentmsgtoolbarComposeTop" class="toolbar toolbar_compose-top toolbar_corner-top"> <div class="jsdn"> !!!!!<input type="submit" value="Отправить" name="send"> <input type="submit" value="Сохранить" name="draft"> <input type="button" value="Отмена" name="cancel">!!!!!</div> <div class="nojsdn"> <a class="button-a js-send" role="submit" tabindex="1" title="Ctrl+Enter">Отправить</a> <a class="button-a js-draft" role="submit" tabindex="2" title="Ctrl+S">Сохранить</a> <a class="button-a js-cancel" role="button" tabindex="3">Отмена</a>
Отредактировано noob_saibot (Окт. 30, 2013 11:08:57)
Офлайн
Попробуйте так grab.submit(submit_name='send')
Я щас глянул код граба, он оставляет только одну submit-кнопку, сортирует их по name аттрибуту и оставляет одну. В вашем случае из send и draft он оставил draft, по-умолчанию.
Офлайн
Рука лицо… Я писал g.submit(name=“send”) и не мог понять почему не работает!))))
Lorien огромное спасибо за помощь)))
Офлайн