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:
- RFC 822, Standard for the Format of ARPA Internet Text Messages, August 1982
- RFC 1036, Standard for Interchange of USENET Messages, Dezember 1987
- RFC 2045, Multipurpose Internet Mail Extensions (MIME) Part One: Format of Internet Message Bodies, November 1996
- RFC 2046, Multipurpose Internet Mail Extensions (MIME) Part Two: Media Types, November 1996
- RFC 2047, Multipurpose Internet Mail Extensions (MIME) Part Three: Message Header Extensions for Non-ASCII Text, November 1996
- RFC 2048, Multipurpose Internet Mail Extensions (MIME) Part Four: Registration Procedures, November 1996
- RFC 2049, Multipurpose Internet Mail Extensions (MIME) Part Five: Conformance Criteria and Examples, November 1996
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.