![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Delphi 7 idpop3 [D7, Win95/98]
Alex-11111 © (2003-12-19 04:15:00)
При попытки получить почту программа виснит. Вот её код:
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 15:47:00) [1]
читай док-цию к объекту класса TIdPOP3, разбирайся ...
а на твой вопрос - как реализовать обращение к POP3-серверу в доп.код.потоке средствами Indy - я ответил полностью
Alex-11111 (2003-12-19 15:43:00) [2]
Спасибо, работает. Но почту не принемает. Показывает количество сообщений, а потом проходит какоето время и пишет что соединение разорвано. Отправлять пробовал, получается и простое письмо и с прекреплённым файлом.
Digitman (2003-12-19 14:58:00) [3]
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 14:44:00) [4]
Спосибо за код, но как им пользоватся. Как описать
TMyPOP3Request
И куда вписать этот код?
Digitman (2003-12-19 13:50:00) [5]
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 12:56:00) [6]
Где скачать примеры?
Alex-11111 (2003-12-19 12:53:00) [7]
С помощью IdAntifreeze не виснет, но стоит на строчке
pop.ProcessMessage(m);
dDan (2003-12-19 12:47:00) [8]
А вообщето с delphi идут примеры по работе с инди и там вроже есть работа с ПОП3 только вот вроде в 7 их нету придеться качать
Amoeba (2003-12-19 12:43:00) [9]
> Alex-11111 (19.12.03 12:13) [4]
> исполнение алгоритма в доп.код.поток
Значит придется засесть за серьезный учебник и разобраться с тем, что есть потоки и зачем их используют
Alex-11111 (2003-12-19 12:13:00) [10]
исполнение алгоритма в доп.код.поток
Digitman (2003-12-19 12:02:00) [11]
что "как" ? конкретно ? в рекомендации же фигурирует "либо ... либо .." !
Alex-11111 (2003-12-19 11:53:00) [12]
Как это сделать, не понял?
Digitman (2003-12-19 08:55:00) [13]
либо выноси исполнение алгоритма в доп.код.поток либо пользуй IdAntifreeze