![]() |
|
|
#1
|
|||
|
|||
|
Есть 4 e-mail нужно зделать чтоб прога конектилась к каждой поодельности и искала нужное письмо, а потом сохраняла его в файл.
Я пробовал но в меня не получаетса. Последний раз редактировалось Holms, 14.12.2009 в 16:35. |
|
#2
|
|||
|
|||
|
Цитата:
Ну ты покажи что пробовал-то? |
|
#3
|
|||
|
|||
|
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
i:integer;
begin
IdPOP31.Username:=Copy(ListBox1.Items[0],1,Pos(';',ListBox1.Items[0])-1);
IdPOP31.Password:=Copy(ListBox1.Items[0],Pos(';',ListBox1.Items[0])+1,Length(ListBox1.Items[0])-Pos(';',ListBox1.Items[0]));
IdPOP31.Connect();
IdMessage1.Clear;
IdPOP31.Retrieve(i,IdMessage1);
for i:=1 to IdPOP31.CheckMessages do
IdPOP31.Retrieve(i,IdMessage1);
If POS (Edit1.text,IdMessage1.From.Address)=1 then
memo1.Lines.add(IdMessage1.Body.Text)
else showmessage('lol')Последний раз редактировалось Admin, 14.12.2009 в 10:13. |
|
#4
|
|||
|
|||
|
Пожалуста помогите очень нужно.
|
|
#5
|
|||
|
|||
|
Что выдает-то? Ошибку? Не срабатывает условие?
Если ошибка - напиши текст ошибки, Если не срабатывает, поставь брекпоинты и смотри что выдает и с чем сравниваешь. Попробуй: вместо Код:
If POS (Edit1.text,IdMessage1.From.Address)=1 then
memo1.Lines.add(IdMessage1.Body.Text)
else showmessage('lol')Поставь Код:
Memo1.Lines.Add(copy(IdMessage1.From.Address, 1, length(Edit1.Text))+'<=>'+Edit1.Text Будет видно что с чем сравнивается Последний раз редактировалось Phedor, 14.12.2009 в 18:44. |
|
#6
|
|||
|
|||
|
Phedor ты немог бы написать мне ету программу??? Просто я в Делфи не очень.....
|
|
#7
|
|||
|
|||
|
Ну, идея-то правильная.
Только не совсем понял что ты там делаешь с именем пользователя и паролем. И еще. Я бы выделил проверку ящика в отдельную процедуру с входными логином и паролем. И не понятно что за письмо ты ищешь - отправленное с определенного адреса, что-ли? Я бы сделал как-то так: Код:
type
TSelectMessage = procedure (Msg : TIdMessage) Of Object;
procedure CheckMailBox(AUser, APass : String; ASelMsg : TSelectMessage)ж
var
N, I : Integer;
POP3 : TIdPOP3;
Msg : TIdMessage;
begin
Msg := TIdMessage.Create(Nil);
POP3 := TIdPOP3.Create(Nil);
Try
POP3.User := AIser;
POP3.Password := APass;
POP3.Connect;
N := POP3.CheckMessages;
For I := 1 To N Do
Begin
POP3.Retrive(I,Msg);
ASelMsg(Msg)
End;
Finally
POP3.Free;
Msg.Free;
End;
end;Ну и теперь эту процку можно вызывать для каждого ящика. Входная процка ASelMsg - собственно обработчик сообщения, который и принимает решение - то это письмо или нет. |
|
#8
|
|||
|
|||
|
lmikle ты немог бы написать мне ету программу??? Просто я в Делфи не очень.....
|
|
#9
|
|||
|
|||
|
Не-а... написать готовое - только за деньги.
Помочь и объяснить - тогда бесплатно. |
|
#10
|
|||
|
|||
|
За скоко напишеш ету прогу с нуля??
|
|
#11
|
|||
|
|||
|
Ты сначала задачу полностью поставь.
Просомтреть POP3 ящики просто. Если они с SSL, то чуть сложнее. А что искать и что с найденным делать - непонятно. |
|
#12
|
|||
|
|||
|
Напиши в ICQ : 554104078
|