Zig Requires Chilkat v11.0.0+
Zig
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 Zig Downloads
const std = @import("std");
const chilkat = @import("chilkat");
pub fn main(init: std.process.Init) !void {
const alloc = init.arena.allocator();
// 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.
const email = try chilkat.Email.init();
defer email.deinit();
email.setBody("This is the plain text part.");
email.setSubject("Apple Watch Example");
email.setFrom("from@example.org");
email.addTo("", "to@example.org") catch {};
std.debug.print("{s}\n", .{try email.getMime(alloc)});
std.debug.print("--\n", .{});
// 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..
const mime = try chilkat.Mime.init();
defer mime.deinit();
mime.loadMime(try email.getMime(alloc)) catch {};
// Convert this MIME to multipart/alternative.
mime.convertToMultipartAlt() catch {};
std.debug.print("{s}\n", .{try mime.getMime(alloc)});
std.debug.print("--\n", .{});
// 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..
const part_plain_text = try chilkat.Mime.init();
defer part_plain_text.deinit();
mime.partAt(0, part_plain_text) catch {
std.debug.print("{s}\n", .{try mime.getLastErrorText(alloc)});
return;
};
part_plain_text.setCharset("utf-8");
part_plain_text.setDisposition("inline");
part_plain_text.setEncoding("quoted-printable");
// Create the text/watch-html MIME part and add it.
const part_watch_html = try chilkat.Mime.init();
defer part_watch_html.deinit();
part_watch_html.setContentType("text/watch-html");
part_watch_html.setCharset("utf-8");
part_watch_html.setDisposition("inline");
part_watch_html.setEncoding("quoted-printable");
part_watch_html.setBody("<b>This is the Watch HTML part</b>");
mime.appendPart(part_watch_html) catch {};
std.debug.print("{s}\n", .{try mime.getMime(alloc)});
std.debug.print("--\n", .{});
// 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.
const part_html = try chilkat.Mime.init();
defer part_html.deinit();
part_html.setContentType("text/html");
part_html.setCharset("utf-8");
part_html.setDisposition("inline");
part_html.setEncoding("quoted-printable");
part_html.setBody("<p>This is the standard HTML part</p>");
mime.appendPart(part_html) catch {};
std.debug.print("{s}\n", .{try mime.getMime(alloc)});
std.debug.print("--\n", .{});
// 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..
email.setFromMimeText(try mime.getMime(alloc)) catch {};
std.debug.print("{s}\n", .{try email.getMime(alloc)});
}