![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Компонент 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;