Sample code for 30+ languages & platforms
Delphi DLL

Create Apple Watch HTML (text/watch-html) Email

See more Email Object Examples

Demonstrates how to create an Apple Watch text/watch-html email.

Chilkat Delphi DLL Downloads

Delphi DLL
uses
    Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
    Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Email, Mime;

...

procedure TForm1.Button1Click(Sender: TObject);
var
success: Boolean;
email: HCkEmail;
mime: HCkMime;
partPlainText: HCkMime;
partWatchHtml: HCkMime;
partHtml: HCkMime;

begin
success := False;

// This example will produce an email such as:

// 	MIME-Version: 1.0
// 	Date: Fri, 02 Jun 2017 09:17:06 -0500
// 	Message-ID: <E6F1F17104442EA09740322D3E2E78806C87FB80@CHILKAT13>
// 	X-Priority: 3 (Normal)
// 	Subject: Apple Watch Example
// 	From: from@example.org
// 	To: to@example.org
// 	Content-Type: multipart/alternative; boundary="------------080904030200000307060803"
// 
// 	--------------080904030200000307060803
// 	Content-Type: text/plain; charset=utf-8
// 	Content-Transfer-Encoding: quoted-printable
// 	Content-Disposition: inline
// 
// 	This is the plain text part.
// 	--------------080904030200000307060803
// 	Content-Type: text/watch-html; charset=utf-8
// 	Content-Disposition: inline
// 	Content-Transfer-Encoding: quoted-printable
// 
// 	<b>This is the Watch HTML part</b>
// 	--------------080904030200000307060803
// 	Content-Type: text/html; charset=utf-8
// 	Content-Disposition: inline
// 	Content-Transfer-Encoding: quoted-printable
// 
// 	<p>This is the standard HTML part</p>
// 	--------------080904030200000307060803--

// Create a new email instance to get the default auto-created fields.
email := CkEmail_Create();
CkEmail_putBody(email,'This is the plain text part.');
CkEmail_putSubject(email,'Apple Watch Example');
CkEmail_putFrom(email,'from@example.org');
CkEmail_AddTo(email,'','to@example.org');

Memo1.Lines.Add(CkEmail__getMime(email));
Memo1.Lines.Add('--');

// This is the MIME so far:
// (Chilkat automatically removes CKX-* headers when sending email.)

// 	MIME-Version: 1.0
// 	Date: Fri, 02 Jun 2017 09:17:06 -0500
// 	Message-ID: <E6F1F17104442EA09740322D3E2E78806C87FB80@CHILKAT13>
// 	Content-Type: text/plain; format=flowed
// 	Content-Transfer-Encoding: 7bit
// 	X-Priority: 3 (Normal)
// 	Subject: Apple Watch Example
// 	From: from@example.org
// 	To: to@example.org
// 
// 	This is the plain text part.

// We'll use the Chilkat MIME object to build it.
// The MIME API provides more flexibility..
mime := CkMime_Create();
CkMime_LoadMime(mime,CkEmail__getMime(email));

// Convert this MIME to multipart/alternative.
CkMime_ConvertToMultipartAlt(mime);

Memo1.Lines.Add(CkMime__getMime(mime));
Memo1.Lines.Add('--');

// We now have this MIME:

// 	MIME-Version: 1.0
// 	Date: Fri, 02 Jun 2017 09:17:06 -0500
// 	Message-ID: <E6F1F17104442EA09740322D3E2E78806C87FB80@CHILKAT13>
// 	X-Priority: 3 (Normal)
// 	Subject: Apple Watch Example
// 	From: from@example.org
// 	To: to@example.org
// 	Content-Type: multipart/alternative; boundary="------------080904030200000307060803"
// 
// 	--------------080904030200000307060803
// 	Content-Type: text/plain; format=flowed
// 	Content-Transfer-Encoding: 7bit
// 
// 	This is the plain text part.
// 	--------------080904030200000307060803--

// If we desire a particular charset, encoding, or disposition..

partPlainText := CkMime_Create();
success := CkMime_PartAt(mime,0,partPlainText);
if (success = False) then
  begin
    Memo1.Lines.Add(CkMime__lastErrorText(mime));
    Exit;
  end;

CkMime_putCharset(partPlainText,'utf-8');
CkMime_putDisposition(partPlainText,'inline');
CkMime_putEncoding(partPlainText,'quoted-printable');

// Create the text/watch-html MIME part and add it.
partWatchHtml := CkMime_Create();
CkMime_putContentType(partWatchHtml,'text/watch-html');
CkMime_putCharset(partWatchHtml,'utf-8');
CkMime_putDisposition(partWatchHtml,'inline');
CkMime_putEncoding(partWatchHtml,'quoted-printable');
CkMime_SetBody(partWatchHtml,'<b>This is the Watch HTML part</b>');
CkMime_AppendPart(mime,partWatchHtml);

Memo1.Lines.Add(CkMime__getMime(mime));
Memo1.Lines.Add('--');

// We now have this MIME:

// 	MIME-Version: 1.0
// 	Date: Fri, 02 Jun 2017 09:17:06 -0500
// 	Message-ID: <E6F1F17104442EA09740322D3E2E78806C87FB80@CHILKAT13>
// 	X-Priority: 3 (Normal)
// 	Subject: Apple Watch Example
// 	From: from@example.org
// 	To: to@example.org
// 	Content-Type: multipart/alternative; boundary="------------080904030200000307060803"
// 
// 	--------------080904030200000307060803
// 	Content-Type: text/plain; charset=utf-8
// 	Content-Transfer-Encoding: quoted-printable
// 	Content-Disposition: inline
// 
// 	This is the plain text part.
// 	--------------080904030200000307060803
// 	Content-Type: text/watch-html; charset=utf-8
// 	Content-Disposition: inline
// 	Content-Transfer-Encoding: quoted-printable
// 
// 	<b>This is the Watch HTML part</b>
// 	--------------080904030200000307060803--

// Create the text/html MIME part and add it.
partHtml := CkMime_Create();
CkMime_putContentType(partHtml,'text/html');
CkMime_putCharset(partHtml,'utf-8');
CkMime_putDisposition(partHtml,'inline');
CkMime_putEncoding(partHtml,'quoted-printable');
CkMime_SetBody(partHtml,'<p>This is the standard HTML part</p>');
CkMime_AppendPart(mime,partHtml);

Memo1.Lines.Add(CkMime__getMime(mime));
Memo1.Lines.Add('--');

// We now have this MIME:

// 	MIME-Version: 1.0
// 	Date: Fri, 02 Jun 2017 09:17:06 -0500
// 	Message-ID: <E6F1F17104442EA09740322D3E2E78806C87FB80@CHILKAT13>
// 	X-Priority: 3 (Normal)
// 	Subject: Apple Watch Example
// 	From: from@example.org
// 	To: to@example.org
// 	Content-Type: multipart/alternative; boundary="------------080904030200000307060803"
// 
// 	--------------080904030200000307060803
// 	Content-Type: text/plain; charset=utf-8
// 	Content-Transfer-Encoding: quoted-printable
// 	Content-Disposition: inline
// 
// 	This is the plain text part.
// 	--------------080904030200000307060803
// 	Content-Type: text/watch-html; charset=utf-8
// 	Content-Disposition: inline
// 	Content-Transfer-Encoding: quoted-printable
// 
// 	<b>This is the Watch HTML part</b>
// 	--------------080904030200000307060803
// 	Content-Type: text/html; charset=utf-8
// 	Content-Disposition: inline
// 	Content-Transfer-Encoding: quoted-printable
// 
// 	<p>This is the standard HTML part</p>
// 	--------------080904030200000307060803--

// Load the email object with this MIME, and we're good to go..
CkEmail_SetFromMimeText(email,CkMime__getMime(mime));
Memo1.Lines.Add(CkEmail__getMime(email));

CkEmail_Dispose(email);
CkMime_Dispose(mime);
CkMime_Dispose(partPlainText);
CkMime_Dispose(partWatchHtml);
CkMime_Dispose(partHtml);

end;