Модераторы: Snowy, Poseidon, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Заполнить поле, нажать на кнопку, на web странице 
:(
    Опции темы
splash666
Дата 2.1.2006, 00:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 27
Регистрация: 15.7.2005
Где: Россия, г.Самара

Репутация: нет
Всего: нет



Ситуация такова:
Есть страница на Hotmail. Страница регистрации. Мне по работе достаточно часто приходится проверять валидность Email адресов на этом сервере. На странице есть поле ввода Email и кнопка проверки валидности введенного адреса. Вручную обрабатывать 100-200 адресов очень долго. Даже на выделенке. Появилось желание написать программу, которая в автоматическом режиме будет вводить в поле Email необходимый адрес, нажимать на кнопку проверки, а потом анализировать ответ.
Как это можно реализовать? С этим вопросом столкнулся достаточно давно, но так и не смог получить нормальный ответ. Может тут кто нибудь поможет? Хотелось бы пример, как это можно сделать.

И, подумывал о telnet подключении на 110 порт (это POP3). Но, похоже, что на Hotmail эта служба в плане безопасности отключена...

Итак, как?

Почитал немного на форуме. Раскрыл исходный код искомой страницы. Вычленил оттуда пару, на мой взгляд, нужных кусков. Вот они. Что с ними можно сделать?
Код

<label for="iEmail" >
E-mail address:</label>
<input type="text" id="iEmail" name="p4181" value="" 
maxlength="64" 
onblur="UpdateTOUSig(this,this.form,'iTOUEmailLabel',GEId('iEmailDomain').innerHTML);" 
style="ime-mode:disabled" /><p id="iEmailDomain">@hotmail.com</p><br /><p class="cHelp">
The address can contain only letters, numbers, periods (.), hyphens (-), or underscores (_).</p><script type="text/javascript">g_otND.iEmail='e';</script>
<img id="iChkAvail" width="0" height="0" border="0" onload="ChkAvailResult()" 
onerror="ChkAvailResultErr()" /><div class="cButton" id="iCheckAvalDiv"><input type="button" name="iCheckAval" id="iCheckAval" value="Check Availability" onclick="ChkAvail(this.form.iEmail,this.form);" /></div></td><td class="cInfo"><div ><p>Type the name that you want to appear before the @ symbol (for example, <b>yourname</b>).<br /><br /><a href="javascript:DoHelp('PPCrtEmlAddr','','1033','MSN,1033','','320');" >Get help with this section</a></p></div><div id="iEULink"style=""><p><a href="javascript:DoHelp('PPabtprvrgtsEU','','1033','MSN,1033','','320');"


Как я понимаю, в этом куске описаны поле ввода iEmail и кнопка проверки iCheckAvalDiv. Я прав?
Если кто то действительно заинтересовался данной проблемой, привожу ниже код всей страницы. Простите за отсутствие форматирования, но, видимо на Hotmail не привыкли его делать=) Это первозданный вид.

Почему то не хочет этот код отображаться....прикрепляю к сообщению.

Вот так....жду ответов.

Это сообщение отредактировал(а) splash666 - 2.1.2006, 00:41

Присоединённый файл ( Кол-во скачиваний: 2 )
Присоединённый файл  opr0056A.txt 26,70 Kb
PM MAIL ICQ   Вверх
iddqd
Дата 2.1.2006, 03:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 491
Регистрация: 16.11.2005

Репутация: нет
Всего: 2



ИМХО, надо просто корректировать URI.

Что ты подразумеваешь в данном случае под словом "валидность"? Правильность ввода е-мали адреса или существование его на сервере, что?


--------------------
PM MAIL   Вверх
splash666
Дата 2.1.2006, 21:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 27
Регистрация: 15.7.2005
Где: Россия, г.Самара

Репутация: нет
Всего: нет



iddqd,думаешь?? Накладно всё это....если 100 раз подряд корректировать урл, потом открывать его, пусть даже на автомате, после проверять итд....накладно по времени.
Под валидностью понимаю СУЩЕСТВОВАНИЕ этого ящика. На хотмыле они появляются/исчезают ежедневно. А мне статистику вести приходится smile
PM MAIL ICQ   Вверх
Guest
Дата 3.1.2006, 18:35 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Вот тебе запрос, и не нужно грузить страницу.
Код

GET /memberexists.srf
Accept: */*
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)
Cookie: MSPMemberExists=НужныйЕмайл
Host: accountservices.passport.net

Где в ответе смотреть думаю сам разберешься.
А вообще уже есть готовый софт, причем несколько вариантов чека хотмайла...
  Вверх
splash666
Дата 3.1.2006, 23:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 27
Регистрация: 15.7.2005
Где: Россия, г.Самара

Репутация: нет
Всего: нет



Гм....сеньк...тольк вот вопрос, не мог бы ты объяснить твой код и как его реализовать в дельфи?
PM MAIL ICQ   Вверх
F1reF0x
Дата 4.1.2006, 10:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 68
Регистрация: 10.10.2005

Репутация: нет
Всего: нет



Отправляй запрос IdHttp (Indy>idHTTP). Ты забыл в куске html кода взять ещё тэг <form>. В общем делай так:

Код

Var
  Post: TStringList;
Begin
  Post:= TStringList.Create;
  Post.Add('[email protected]') // Для этой сторочки <input type="text" id="iEmail" name="p4181" value=""  будет так со следующими делаешь по анологии
  try
  idHTTP.Post('http://www.hotmail.com/<путь к срипту который надёшь в <form>>', post);
finally
  Post.Free;
End;


Вобщем суть думаю ясна.

Постомтри на странице на hotmail.com всё что между тэгами <form> </form> и персылай значения так как я написал выше.
PM MAIL   Вверх
Guest
Дата 4.1.2006, 11:00 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











F1reF0x
Че ты паришься с какими-то тегами? smile
Код

nit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ScktComp;

type
  TForm1 = class(TForm)
    Button2: TButton;
    ClientSocket1: TClientSocket;
    procedure ClientSocket1Connect(Sender: TObject;
      Socket: TCustomWinSocket);
    procedure Button2Click(Sender: TObject);
    procedure ClientSocket1Read(Sender: TObject; Socket: TCustomWinSocket);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.ClientSocket1Connect(Sender: TObject;
  Socket: TCustomWinSocket);
begin
Socket.SendText('GET /memberexists.srf HTTP/1.0'+#13#10+
                'Cookie: [email protected]'+#13#10+
                'Host: accountservices.passport.net'+#13#10+
                #13#10);
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
ClientSocket1.Open;
end;

procedure TForm1.ClientSocket1Read(Sender: TObject;
  Socket: TCustomWinSocket);
begin
//Тут смотри что тебе прислали в Set-Cookie, a именно MSPMemberExists...
//MemberExists - пользователь есть.
//OtherError - или неразрешенное мыло или недопустимые символы
//Ну а если тебе вернули то что ты отсылал, то значит что мыло свободно.
ShowMessage(Socket.ReceiveText);
end;

end.


  Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Сети"
Snowy
Poseidon
MetalFan

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делится вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи

Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Snowy, Poseidon, MetalFan.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Сети | Следующая тема »


 




[ Время генерации скрипта: 0.0447 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.