Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Работа с сетью в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 19.02.2011, 19:42   #1
SanSanblch
Пользователь
 
Регистрация: 23.10.2008
Сообщений: 23
Лампочка Использование протоколом Mail.ru агента.

В последнее время вижу многие хотя написать свой Mail агент на Delphi 7. Но не у всех это получается, потому что они что то не понимают.
Сейчас я вам расскажу и покажу как написать свой Mail агент с помощью Delphi 7. В конце я компонент и исходник программы. За основу возьмем информацию пользователя AquaKlaster
Вот отсюда http://programmersforum.ru/showthread.php?t=78120#5
И так приступим .
Для начала нам нужно скомпилировать сам компонент MailClient .
Качаем архивчик по любой из ссылок
1. http://narod.ru/disk/2851335001/MailClient.rar.html
2. http://depositfiles.com/files/p2s2q2fwk
Компонент работает только в Delphi 7.
В Delphi в меню Component\Install Component указываем путь к файлу client.pas, жмем ОК,
Компонент установится автоматически в закладку Sample под названием MailClient, кидаем его на форму.
Также кидаем TCPClient - он нам нужен будет что бы узнавать адресс на который в последующем будет коннектиться клиент!
Можно кинуть на форму пару Edit и Button, но мы будет делать все напримую.
Настраиваем пару свойств для TCPClient:
В RemoteHost пишем mrim.mail.ru
В RemotePort пишем 443 или 2042
Настраиваем свойства для MailClient:
В Mail пишем вам мыло в формате Маил@домен.ru например delphi7.borland@mail.ru
В PassWord пишем ваш пароль **********
В MRIMHost пишем mrim.mail.ru
В MRIMPort пишем 443 или 2042
Далее создаем процедуру Form1.Create
и узнаём IP адрес на который должен обратиться наш компонент

PHP код:
procedure TForm1.FormCreate(SenderTObject);
var
   
iInteger;
     
MrimSstring;
begin
     TCPClient
.Active:=True;
       if 
TCPClient.Connected then
           MrimS
:=TCPClient.Receiveln(#$A); {Получили адрес и порт}
               
TCPClient.Disconnect;
     if 
MrimS <> '' then
         
for i:=1 to Length(MrimS) do
             if 
MrimS[i] = ':' then
                 begin
                     MailClient
.Host:=Copy(MrimS0i-1);
           
MailClient.Port:=StrToInt(Copy(MrimSi+1Length(MrimS)-i));
  
form1.StatusBar1.Panels[0].Text:='Host 'Mailclient.host+'  Port '+IntToStr(MailClient.Port);
                     break;
                 
end;
     if 
MailClient.HostInit then begin
         MailClient
.Connect;  {Соеденяемься}
           
end
     
else
         
MailClient.RequestHost;
end
Далее мы устанавливаем соединение

PHP код:
procedure TForm1.MailClientConnect(SenderTObject);
begin
 MailClient
.Hello;
end
И авторизируемся если соединение прошло успешно

PHP код:
procedure TForm1.MailClientHello(SenderTObject);
begin
   MailClient
.Authorize;
end
И если соединении пропало то мы подключаемся автоматически

PHP код:
procedure TForm1.MailClientRequestHost(SenderTObject);
begin
  mailclient
.Status:=OnLine;
MailClient.Connect;
end
И не забудьте обязательно прописать эту строчку
mailclient.Status:=OnLine;
а то вы не сможете работать с компонентом.

Вот и все, если сделали все правильно то должно произойти подключение. ))
Все остальные функции я не буду расписывать, некоторые вы можете посмотреть в моей программе , она конечно не безупречная , но более менее работает стабильно .

вот подробная информация работы протаколов.
Описание протокола обмена данными Mail.Ru Агент.

Вот исходник программы .

http://depositfiles.com/files/9vhvz1pcs

Если что не так пишите на мой адрес PI-73@mail.ru.

Если что не так сильно не ругайте =))
SanSanblch вне форума Ответить с цитированием
Старый 19.02.2011, 19:49   #2
Letnab
Пользователь
 
Регистрация: 16.12.2009
Сообщений: 52
По умолчанию

Огромное спасибо за описание и приложенный исходник. Всё работает!!!!
Letnab вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Можно ли прочитать архив mail агента? Важно! sashakrug Помощь студентам 5 20.01.2011 07:43
Перехват и обработка сообщений Mail.ru агента NikLik Работа с сетью в Delphi 4 22.07.2008 15:39
Прога для Mail Агента vizor9 Софт 11 20.11.2007 19:59