Entwickler-Ecke

Internet / Netzwerk - E-Mail-Konto auslesen


Jakane - Di 04.03.14 15:14
Titel: E-Mail-Konto auslesen
Hallo liebe Delphi-Helfer :)

Ich habe eine Programmüberwachung für meine Firma geschrieben und sende den Status eine spezielle Firmen-Adresse die mein Chef dafür eingerichtet hat:

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
function _EMail_Senden(psHost, psUsername, psPasswort,
  psZielEMailAdresse, psBetreff, psText, psAnhang: String;
  psEigeneEMailAdresse: String = ''): Boolean;
var
  cSender: TIdSMTP;
  cNachricht: TIdMessage;
begin
  // Variable initialisieren
  cSender := TIdSMTP.Create;
  cSender.Host := psHost;
  cSender.Username := psUsername;
  cSender.Password := psPasswort;
  cNachricht := TIdMessage.Create;
  cNachricht.Recipients.EMailAddresses := psZielEMailAdresse;
  cNachricht.Subject := psBetreff;
  cNachricht.Body.Text := psText;
  if psAnhang <> '' then
    TIdAttachmentFile.Create(cNachricht.MessageParts, psAnhang);

  // Kann-Angaben
  cNachricht.Sender.Address := psEigeneEMailAdresse;

  // Versuche die E-Mail zu versenden
  try
    cSender.Connect;
    cSender.Send(cNachricht);
    cSender.Disconnect;
  except
    Showmessage('Es trat ein Fehler beim Senden der Nachricht auf! Bitte ' +
      'überprüfe in den Einstellungen die Angaben des Postausgangsservers.');
  end;
end;


Mein Chef ist jetzt so begeistert von dem Programm das er jetzt ein 2. Programm will das diese E-Mails jetzt ausliest und ihm schön präsentiert.
Die Daten von und zu dem Konto kenn ich.
Aber wie kann ich an den Inhalt kommen und an welche Daten / Informationen kann ich da finden?

Ich benötige die an jede E-Mail angehängte Datei.

Kann mir da jemand helfen?


baumina - Di 04.03.14 15:32

Das hängt davon ab von wo du die E-Mails beziehen kannst. Ist z.B. IMAP eingestellt, liegen die Mails immer auf dem Server des Providers und könnten von dort gelesen werden. Werden die Mails dagegen auf dem Server des Providers immer gelöscht (meist bei Einstellung POP3), gäbe es auch die Möglichkeit über das jeweils installierte Mailprogramm (z.B. Outlook) die Mails lesen zu können.

EDIT : Wenn du allerdings sowieso nur die von dir generierten Mails anzeigen sollst, wäre es sicherlich sinnvoller die relevanten Daten auf die Festplatte zu speichern (z.B. Datenbank) und von dort aus anzuzeigen.


Jakane - Di 04.03.14 15:50

Also bei uns ist POP3 eingestellt wenn ich das richtig gelesen hab.

Aber diese E-Mails werden vom Kundenserver versendet, also nix mit Datenbank anzeigen oder so :D
Und Outlook will ich ja nicht benutzen, sonst wär ich im Outlook-Forum und nicht Delphi-Forum :P


baumina - Di 04.03.14 16:05

Also wenn kein anderes Mail-Programm die EMails auf dem Server löschen darf, könntest du das auch über Indy lösen (TidPop3).

EDIT: Wenn ich schreibe "über das jeweils installierte E-Mail-Programm (z.B. Outlook)" meinte ich natürlich von Delphi aus über OLE/MAPI auf das Mailprogramm zugreifen, nicht dass du dich ins Outlook-Forum verirrst.


Jakane - Mi 05.03.14 09:55

Ah verstehe :)
Indy hab ich, jetzt muss ich nur noch die Nachrichten lesen können.

Aber dafür gibts sicher Foren.


baumina - Mi 05.03.14 10:06

Da du dich ja schon mit TIdSMTP beschäftigt hast, ist es einfach TIdPop3 zu verstehen, denn es ist ja das selbe nur nicht sendend sondern empfangend.

Hier noch was zum anguggen : http://www.delphi-treff.de/tutorials/netzwerk-und-internet/indy/pop3-tidpop3/