Function DE Version 10.10

@MimePartAdd

Attachments Note

Syntax

@MimePartAdd(MIMEPART1;FNFLAGS2;FNPARTTYPE3;FNVERSION4;MIMEBOUNDARY5;MIMEHEADERS6;MIMEBODY7);

Beschreibung

Es wird ein neues MIMEPART-Segment an HUGEMIMEPART MIMEPART1 angefügt, das erweiterte MIMEPART-Feld wird wieder zurückgegeben.

FN FNFLAGS2:
In diesem Parameter werden die Flags für das neue Segment angegeben.

Flag   Hex   Dec   Kommentar
MIME_PART_HAS_BOUNDARY   0001   00001   
MIME_PART_HAS_HEADERS   0002   00002   
MIME_PART_BODY_IN_DBOBJECT   0004   00004   
MIME_PART_SHARED_DBOBJECT   0008   00008   Used only with MIME_PART_BODY_IN_DBOBJECT.
MIME_PART_SKIP_FOR_CONVERSION   0010   00016   only used during MIME->CD conversion

FN FNPARTTYPE3:
In diesem Parameter wird der Type für das neue Segment angegeben.

Type   Hex   Dec
MIME_PART_PROLOG   0001   00001
MIME_PART_BODY   0002   00002
MIME_PART_EPILOG   0003   00003
MIME_PART_RETRIEVE_INFO   0004   00004
MIME_PART_MESSAGE   0005   00005

FN FNVERSION4:
In diesem Parameter wird die Version für das neue Segment angegeben.
Derzeit nur Version 2 zulässig!

TEXT MIMEBOUNDARY5:
In diesem Parameter wird der Boundary-String für das neue MIMEPART-Segment angegeben.
Der Boundary-String ist ein mehr oder weniger zufälliger String, der aber eindeutig sein sollte und in den eigentlichen Daten nicht vorkommt, damit er zur Abgrenzung dienen kann.
Ein Boundary-String wird mir "\X0D\0A" abgeschlossen!
Per RFC Definition:
Der Boundary-String wird bei allen Teilen mit "–" eingeleitet und beim Epilog wird der Boundary-String mir "–" ausgeleitet (vor dem abschließenden "\X0D\0A"; siehe Beispiel unten letztes Segment!).
Ein Segment muss nicht zwingend einen Boundary-String enthalten!

TEXT MIMEHEADERS56:
In diesem Parameter werden die Header-Zeilen für das neue MIMEPART-Segment angegeben.
Die Headerzeilen können diverse Angaben zum Body enthalten, oder z.B. den Boundary-String festlegen.
Eine Header-Zeile wird mir "\X0D\0A" abgeschlossen, der gesamte Header wird mit "\X0D\0A\X0D\0A" abgeschlossen!
Ein Segment muss nicht zwingend Header-Zeilen enthalten!

TEXT MIMEBODY7:
In diesem Parameter wird der eigentliche Body des neuen MIMEPART-Segments angegeben.
Der Body kann den Default-Text für nicht HTML-Mail-Clients enthalten, oder den Verweis auf das Attachment im Dokument mit dem HTML-Text (mime.htm) für HTML-Mail-Clients.
Ein Segment muss nicht zwingend einen Body enthalten!

Der Retunwert des Function ist im Erfolgsfall das erweiterte MIMEPART-Feld.

Beispiel @MimePartAdd(MIMEPART1;FNFLAGS2;FNPARTTYPE3;FNVERSION4;MIMEBOUNDARY5;MIMEHEADERS6;MIMEBODY7);

/*Erstellen eines typischen MimePart Feldes:*/
MIMEPART1:=@HugeMimePart;
Version:=2;

Flags:=2;
PartType:=1;
MimeBoundary:="";
MimeHeaders:="Content-Type: multipart/alternative; boundary=\"_———-=_MCPart_1267956056\"\X0D\X0A\X0D\X0A"
;
MimeBody:="This is a multi-part message in MIME format
\X0D\X0A";
MIMEPART1:=@MimePartAdd(MIMEPART1;Flags;PartType;Version;MimeBoundary;MimeHeaders;MimeBody);

Flags:=3;
PartType:=2;
MimeBoundary:="\X0D\X0A–_———-=_MCPart_1267956056\X0D\X0A";
MimeHeaders:="Content-Transfer-Encoding: quoted-printable\X0D\X0AContent-Type: text/plain; charset=\"utf-8\"; format=\"fixed\"\X0D\X0A\X0D\X0A";
MimeBody:="Dies ist der Text f\XC3\XBCr einen nicht HTML-f\XC3\XA4higen Mail-Client!\X0D\X0A";
MIMEPART1:=@MimePartAdd(MIMEPART1;Flags;PartType;Version;MimeBoundary;MimeHeaders;MimeBody);

Flags:=15;
PartType:=2;
MimeBoundary:="\X0D\X0A–_———-=_MCPart_1267956056\X0D\X0A";
MimeHeaders:="Content-Transfer-Encoding: 8bit\X0D\X0AContent-Type: text/html; charset=\"utf-8\"\X0D\X0A\X0D\X0A";
MimeBody:="mime.htm";
MIMEPART1:=@MimePartAdd(MIMEPART1;Flags;PartType;Version;MimeBoundary;MimeHeaders;MimeBody);

Flags:=1;
PartType:=3;
MimeBoundary:="\X0D\X0A–_———-=_MCPart_1267956056–\X0D\X0A";
MimeHeaders:="";
MimeBody:="\X0D\X0A";
MIMEPART1:=@MimePartAdd(MIMEPART1;Flags;PartType;Version;MimeBoundary;MimeHeaders;MimeBody);

Es wird durch mehrere @MimePartAdd aufrufe ein typisches MIMEPART-Feld erstellt.