Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Mail abholen und vom server löschen (https://www.delphipraxis.net/43232-mail-abholen-und-vom-server-loeschen.html)

Christian18 31. Mär 2005 07:50


Mail abholen und vom server löschen
 
Hallo,

ich versuche gerade ein kleines E-Mail Programm zu schreiben. Wie kann ich, wenn ich eine Mail ahhole diese vom Server löschen. Ich schicke mal den Quellcode mit den ich schon habe.

Delphi-Quellcode:
procedure TFMain.Abrufen1Click(Sender: TObject);
 var ini : TINIFile; // INI - datei
     i  : Integer;  // Schleifenvariable
     j  : Integer;  // Schleifenvariable
     a  : Integer;  // Anzahjl der Mails
begin
  // INI - Objekt erzeugen
  ini:=TIniFile.Create('.\conf.ini');

  POP.UserId:=ini.ReadString('Account', 'Account', '');
  POP.Password:=ini.ReadString('Account', 'Passwort', '');
  POP.Host:=ini.ReadString('Account', 'POP', '');

  // Verbindung herstellen
  POP.Connect;

  // Anzahl der Mails ermitteln
  a:=POP.CheckMessages;

  // Mails holen
  for i:=1 to a do
    begin
      MSG.Clear;
      POP.RetrieveHeader(i, MSG);
      TPosteingang.Append;
      TPosteingang.FieldByName('Von').AsString:=MSG.From.Text;
      TPosteingang.FieldByName('Datum').AsDateTime:=MSG.Date;
      TPosteingang.FieldByName('An').AsString:=MSG.Recipients.EMailAddresses;
      TPosteingang.FieldByName('Betreff').AsString:=MSG.Subject;
      TPosteingang.Post;
    end;

  // Verbindung trennen
  POP.Disconnect;
end;
Ja was gibt es jetzt noch zu sageen???

POP ist die IdPop3 Komponente und MSG ist die IdMessage Komponnente. ich denke jetzt ist alles klar

Christian18 31. Mär 2005 07:52

Re: Mail abholen und vom server löschen
 
hey ich habs schon gefunden.

mann kann das mit POP.Delete(); machen.

Trotzdem danke

stefangeorg 31. Mär 2005 08:10

Re: Mail abholen und vom server löschen
 
nur ein kleiner Hinweis, immer an das Freigeben denken:

Delphi-Quellcode:
   ...
   // INI - Objekt erzeugen
   ini:=TIniFile.Create('.\conf.ini');
   try
      // hier der Code der auf ini zugreift
      ...
   finally
      ini.free;
   end;
   ...
mfg

Georg Härting

Cyberbob 28. Okt 2005 02:15

Re: Mail abholen und vom server löschen
 
Was passiert, wenn ich "ini" nicht Freigebe?

Sharky 28. Okt 2005 06:07

Re: Mail abholen und vom server löschen
 
Zitat:

Zitat von Cyberbob
Was passiert, wenn ich "ini" nicht Freigebe?

Dann belegt die Klasse noch Speicher. Bei jedem neuen Aufruf deiner Funktion wird neuer Speicher angefordert.
Ergebniss : Der Speicherverbrauch deines Programmes wird mit jedem Aufruf größer und dein Programm belegt Speicher auf den es selber nicht mehr zugreifen kann weil der Pointer daruf ja immer "neu erzeugt wird".

Daher gilt (für mich) der Grundsatz. Alles was ich im Programm mit .Create erzeuge gebe ich auch mit .Free wieder frei. Auch wenn es in bestimmten Situationen nicht notwändig wäre.


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:00 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz