Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2010.01.17;
Скачать: CL | DM;

Вниз

Компонент MRIM   Найти похожие ветки 

 
Ohotnic ©   (2009-11-25 07:32) [0]

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


 
TIF ©   (2009-11-26 06:58) [1]

Первым делом читаем кто автор творения и ищем его официальный сайт
То бишь ищем 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;


 
TIF ©   (2009-11-26 07:29) [2]

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

Google рулит...



Страницы: 1 вся ветка

Текущий архив: 2010.01.17;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.027 c
15-1257975014
Юрий
2009-11-12 00:30
2010.01.17
С днем рождения ! 12 ноября 2009 четверг


15-1258634939
И. Павел
2009-11-19 15:48
2010.01.17
Брак или клавиатура с ИИ?


15-1258233190
Cerberus
2009-11-15 00:13
2010.01.17
Кому не жалко инвайта на google wave?


15-1258147816
Юрий
2009-11-14 00:30
2010.01.17
С днем рождения ! 14 ноября 2009 суббота


1-1233670260
Dot
2009-02-03 17:11
2010.01.17
Каким обр. оптимально реализовать межпрограммное взаимодействие?