Home » Tutorials » Netzwerk und Internet » Indy

Indy

TIdMessage

Bei der Komponente IdMessage handelt es sich um kein Internetprotokoll, sondern um eine Klasse, deren Aufgabe es ist, eine Internet Message aufzunehmen. Deshalb befindet sie sich im Register „Indy Misc“. U.a. wird IdMessage im Zusammenhang mit Mails (POP3, SMTP) und im Zusammenhang mit News (NNTP) benötigt. Auch MIME (Multipurpose Internet Mail Extensions) werden unterstützt.
Nichtsdestotrotz handelt es sich hierbei nicht um ein Datenformat, das sich die Indy-Entwickler ausgedacht haben. Auch hierfür gibt es Standards, die in RFCs festgehalten sind:

IdMessage

IdMessage enthält Eigenschaften für alles, was man aus einer Mail kennt. Z.B. könnte eine Message so zusammengebaut werden:

with IdMessage do begin
  Body.Assign(Memo1.Lines);
  // Name des Absenders
  From.Text := UserEmail;
  // E-Mail-Adressen der Empfänger (durch Komma getrennt)
  Recipients.EMailAddresses := edtTo.Text;
  // Betreff (Subject) der Mail
  Subject := edtSubject.Text;
  // Priorität
  Priority := mpNormal;
  // E-Mail-Adressen der Kopie-Empfänger (CC=Carbon Copy)
  CCList.EMailAddresses := edtCC.Text;
  // E-Mail-Adressen der versteckten Kopie-Empfänger (BCC=Blind Carbon Copy)
  BccList.EMailAddresses := edtBCC.Text;
end;

Anhänge

Eine interessante Eigenschaft ist noch MessageParts. Sie enthält eine Liste aller Teile einer Nachricht. Hierbei handelt es sich um einen Textteil (den Body) oder um Anhänge.
Für Anhänge, die in Dateiform vorliegen, wird die Klasse TAttachmentFile verwendet. Deren Create-Methode erwartet zwei Parameter: die Collection, der der Anhang hinzugefügt werden soll (normalerweise die MessageParts von IdMessage), und der Pfad der Datei selbst.