Hente mails med Indy.....
Jeg har et problem når jeg henter mails med Indy komponenterne.Problemmet er at jeg gerne vil tjekke hvad mailen består af (Tekst, en vedhæftet fil e.l.)
Msg.MessageParts.Count bliver 0 hvis jeg modtager en mail med tekst.
Og Msg.MessageParts.Count bliver 1 hvis jeg modtager en mail med en vedhæftede fil.
MEN Msg.MessageParts.Count burder jo aldrig bliver 0, så længe at det er en mail (ligegyldig hvad den så indeholder)
Her er metoden:
procedure TForm1.Button1Click(Sender: TObject);
var
Msg : TIdMessage;
i, x : integer;
s : string;
antal : Integer;
begin
IdPOP3.Host := 'xxx';
IdPOP3.Port := 110;
IdPOP3.Username := 'xxx';
IdPOP3.Password:= 'xxx';
IdPOP3.Connect;
antal := IdPOP3.CheckMessages;
for i := 1 to antal do
begin
Msg := TIdMessage.Create(Self);
IdPOP3.Retrieve(i, Msg);
Memo1.Lines.Add(Msg.Subject);
for x := 0 to Pred(Msg.MessageParts.Count) do
begin
//mailen består af tekst
if Msg.MessageParts.Items[x] is TIdText then
begin
s := TIdText(Msg.MessageParts.Items[x]).Body.Text;
Memo1.Lines.Add(s);
end
//mailen består af en Attachment
else if Msg.MessageParts.Items[x] is TIdAttachment then
begin
Memo1.Lines.Add(TIdAttachment(Msg.MessageParts.Items[x]).Filename);
end;
end;
end;
IdPOP3.Disconnect;
end;
Nogen ideer?
