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

Вниз

Delphi 7 idpop3   Найти похожие ветки 

 
Alex-11111   (2003-12-19 04:15) [0]

При попытки получить почту программа виснит. Вот её код:

statusbar1.Panels[0].Text:="Соединение с сервером";
pop.Username:="alex-drob";
pop.Password:=
pop.Host:="pop.mail.ru";
pop.Connect(-1);
statusbar1.Panels[0].Text:="Проверка";
statusbar1.Panels[0].Text:=inttostr(pop.CheckMessages);
M:=TIdMessage.Create(Form1);
pop.ProcessMessage(m);
memo1.Lines:=m.Body;
pop.Disconnect;

не реагирует не на что пока подключается к серверу и окончательно виснит во время загрузки почты.


 
Digitman ©   (2003-12-19 08:55) [1]

либо выноси исполнение алгоритма в доп.код.поток либо пользуй IdAntifreeze


 
Alex-11111   (2003-12-19 11:53) [2]

Как это сделать, не понял?


 
Digitman ©   (2003-12-19 12:02) [3]

что "как" ? конкретно ? в рекомендации же фигурирует "либо ... либо .." !


 
Alex-11111   (2003-12-19 12:13) [4]

исполнение алгоритма в доп.код.поток


 
Amoeba ©   (2003-12-19 12:43) [5]

> Alex-11111 (19.12.03 12:13) [4]
> исполнение алгоритма в доп.код.поток

Значит придется засесть за серьезный учебник и разобраться с тем, что есть потоки и зачем их используют


 
dDan   (2003-12-19 12:47) [6]

А вообщето с delphi идут примеры по работе с инди и там вроже есть работа с ПОП3 только вот вроде в 7 их нету придеться качать


 
Alex-11111   (2003-12-19 12:53) [7]

С помощью IdAntifreeze не виснет, но стоит на строчке
pop.ProcessMessage(m);


 
Alex-11111   (2003-12-19 12:56) [8]

Где скачать примеры?


 
Digitman ©   (2003-12-19 13:50) [9]


constructor TMyPOP3Request.Create(AUser, APwd, AHost: String; APort: Integer = 110);
begin
inherited Create(True);
FHost := AHost;
FPort := APort;
FUsername := AUser;
FPassword := APwd;
Resume;
end;

destructor TMyPOP3Request.Destroy;
begin
FMsgs.Free;
inherited;
end;

procedure TMyPOP3Request.DoLog;
begin
frmMain.MemoD.Lines.Add(FLogText);
end;

procedure TMyPOP3Request.Execute;
var
i, n: Integer;
AMsg: TIdMessage;
begin
try
FPOP3 := TIdPOP3.Create(nil);
with FPOP3 do
try
UserId:= FUsername;
Password:= FPassword;
Host:= FHost;
Port := FPort;
LogMessage("


 
Alex-11111   (2003-12-19 14:44) [10]

Спосибо за код, но как им пользоватся. Как описать
TMyPOP3Request
И куда вписать этот код?


 
Digitman ©   (2003-12-19 14:58) [11]


type

TMyPOP3Request = class(TThread)
private
FPOP3: TIdPOP3;
FHost, FUsername, FPassword, FLogText: String;
FMsgs: TStrings;
FPort, FMsgNo, FMsgCnt: Integer;
procedure DoLog;
protected
procedure LogMessage(const LogText: String);
procedure Execute; override;
public
constructor Create(AUser, APwd, AHost: String; APort: Integer = 110);
destructor Destroy; override;
end;


неужто так сложно догадаться ?)


 
Alex-11111   (2003-12-19 15:43) [12]

Спасибо, работает. Но почту не принемает. Показывает количество сообщений, а потом проходит какоето время и пишет что соединение разорвано. Отправлять пробовал, получается и простое письмо и с прекреплённым файлом.


 
Digitman ©   (2003-12-19 15:47) [13]

читай док-цию к объекту класса TIdPOP3, разбирайся ...

а на твой вопрос - как реализовать обращение к POP3-серверу в доп.код.потоке средствами Indy - я ответил полностью



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

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

Наверх




Память: 0.49 MB
Время: 0.04 c
3-79573
Игорь
2004-01-29 14:15
2004.02.25
Вывод значения текстового поля из базы данных в отчет


14-80195
Djon007
2004-01-30 20:10
2004.02.25
Не могу определить свой host


1-79861
Прямой
2004-02-14 04:12
2004.02.25
Как найти длинну динамического массива


1-79986
DarkUser
2004-02-12 15:30
2004.02.25
Если еще кому не надоело про DLL


14-80293
Gorlum
2004-02-03 11:30
2004.02.25
Про графику