Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Компонент MRIM


Ohotnic ©   (2009-11-25 07:32:00) 

Здравствуйте.
Скачал http://yxu.org.ru/index.php?do=load&id=1&cat=sourcesкомпонент для Delphi для работы с Mail Ru Agent(MRA) протоколом. Помогите разобраться,  Мне нужен хотя бы фрагмент кода из действующей программы например из окна ввода логина и пароля и соединение с сервером.


TIF   (2009-11-26 07:29:00) [1]

Хе-хе, как раз 5 дней назад, 21 ноября, всё это проскакивало на винграде:
http://forum.vingrad.ru/index.php?showtopic=275368&view=findpost&p=2026693

Google рулит...


TIF   (2009-11-26 06:58:00) [2]

Первым делом читаем кто автор творения и ищем его официальный сайт
То бишь ищем readme, или ищем подробности в комментариях в pas-файлах, или просто-напросто гуглим ;-)

Сайт автора - http://www.mak-ms.com
На данный момент он не работает, но это не беда, ибо кеш у поисковиков никто не отменял. В гугле страницы от 14 ноября:
http://www.google.com/search?q=site%3Amak-ms.com%2Fforum+TMailClient

Там же заодно находим весьма ценное замечание:
Mail.ru сменили версию протокола. Раньше была 1.7, теперь 1.12. Нужно поменять версию в proto.pas

Пожертвую результат своих давних экспериментов :)
Проверялось на Delphi 7

Что нужно:
MailClient1: TMailClient;
TcpClient1: TTcpClient;


У TMailClient обрабатываем следующие события:
procedure TForm1.MailClient1RecievedHost(Sender: TObject);
begin
  MailClient1.Connect;
end;

procedure TForm1.MailClient1Connect(Sender: TObject);
begin
  MailClient1.Hello;
end;

procedure TForm1.MailClient1Hello(Sender: TObject);
begin
  MailClient1.Authorize;
end;

(меня уже смущает, почему сразу в Connect нельзя было прописать Authorize, но проверять себя сейчас не буду, долго :)

Подключаемся:
var
  MessCount, i, j: Integer;
  MrimS: String;
begin
  TCPClient1.Active:=True;
  if TCPClient1.Connected
    then MrimS:=TCPClient1.Receiveln(#$A); // Получаем IP и порт для подключения
  TCPClient1.Disconnect; // Подстрахуемся
  if MrimS <> ''
    then for i:=1 to Length(MrimS) do
      if MrimS[i] = ':'
         then begin
                 MailClient1.Host:=Copy(MrimS, 0, i-1);
                 MailClient1.Port:=StrToInt(Copy(MrimS, i+1, Length(MrimS)-i));
                 break;
              end;
  if MailClient1.HostInit
    then MailClient1.Connect  // Подключаемся
    else MailClient1.RequestHost;


Запрашиваем авторизацию у контакта:
MailClient1.ContactAuthorize('andrewtishkin@mail.ru');

Отправляем сообщение:
MailClient1.SendMessage('andrewtishkin@mail.ru', 'Привет :)');

Отправляем SMS:
MailClient1.SendSMS('+7 ... ', 'Тестируем СМС');

Чтобы облегчить тестирование:
  if MailClient1.Connected
    then SendMessage ...
    else // Нет подключения


Отключаемся:
  MailClient1.Disconnect;


Наверх

Титульная страница Поиск, карта сайта Написать письмо