Sample code for 30+ languages & platforms
Delphi DLL

MIME Multipart Boundary and Preamble Properties

See more MIME Examples

Demonstrates the Boundary property, which gets or sets the raw boundary token of a multipart entity (without surrounding quotation marks), and UseMmDescription, which controls whether the conventional preamble text is emitted when serializing a multipart entity.

Background. A multipart boundary separates the constituent parts. Chilkat quotes the token automatically in the header when required. The preamble is ignored by MIME-aware readers and is off by default.

Chilkat Delphi DLL Downloads

Delphi DLL
var
success: Boolean;
mime: HCkMime;
part: HCkMime;
mimeStr: PWideChar;

begin
success := False;

mime := CkMime_Create();

//  Create a multipart/mixed entity.
success := CkMime_NewMultipartMixed(mime);
if (success = False) then
  begin
    Memo1.Lines.Add(CkMime__lastErrorText(mime));
    Exit;
  end;

//  Boundary is the raw boundary token, without surrounding quotation marks.  Chilkat quotes it
//  automatically in the serialized header when required.
CkMime_putBoundary(mime,'example-boundary');

//  UseMmDescription controls whether the conventional preamble text
//  "This is a multi-part message in MIME format." is emitted.  The default is 0.
CkMime_putUseMmDescription(mime,True);

//  Add a simple part so the multipart has content.
part := CkMime_Create();
success := CkMime_SetBodyFromPlainText(part,'First part.');
if (success = False) then
  begin
    Memo1.Lines.Add(CkMime__lastErrorText(part));
    Exit;
  end;
success := CkMime_AppendPart(mime,part);
if (success = False) then
  begin
    Memo1.Lines.Add(CkMime__lastErrorText(mime));
    Exit;
  end;

Memo1.Lines.Add('Boundary = ' + CkMime__boundary(mime));

mimeStr := CkMime__getMime(mime);
if (CkMime_getLastMethodSuccess(mime) = False) then
  begin
    Memo1.Lines.Add(CkMime__lastErrorText(mime));
    Exit;
  end;
Memo1.Lines.Add(mimeStr);

CkMime_Dispose(mime);
CkMime_Dispose(part);