PureBasic
PureBasic
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 PureBasic Downloads
IncludeFile "CkEmail.pb"
IncludeFile "CkMime.pb"
Procedure ChilkatExample()
success.i = 0
; 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.i = CkEmail::ckCreate()
If email.i = 0
Debug "Failed to create object."
ProcedureReturn
EndIf
CkEmail::setCkBody(email, "This is the plain text part.")
CkEmail::setCkSubject(email, "Apple Watch Example")
CkEmail::setCkFrom(email, "from@example.org")
CkEmail::ckAddTo(email,"","to@example.org")
Debug CkEmail::ckGetMime(email)
Debug "--"
; 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.i = CkMime::ckCreate()
If mime.i = 0
Debug "Failed to create object."
ProcedureReturn
EndIf
CkMime::ckLoadMime(mime,CkEmail::ckGetMime(email))
; Convert this MIME to multipart/alternative.
CkMime::ckConvertToMultipartAlt(mime)
Debug CkMime::ckGetMime(mime)
Debug "--"
; 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.i = CkMime::ckCreate()
If partPlainText.i = 0
Debug "Failed to create object."
ProcedureReturn
EndIf
success = CkMime::ckPartAt(mime,0,partPlainText)
If success = 0
Debug CkMime::ckLastErrorText(mime)
CkEmail::ckDispose(email)
CkMime::ckDispose(mime)
CkMime::ckDispose(partPlainText)
ProcedureReturn
EndIf
CkMime::setCkCharset(partPlainText, "utf-8")
CkMime::setCkDisposition(partPlainText, "inline")
CkMime::setCkEncoding(partPlainText, "quoted-printable")
; Create the text/watch-html MIME part and add it.
partWatchHtml.i = CkMime::ckCreate()
If partWatchHtml.i = 0
Debug "Failed to create object."
ProcedureReturn
EndIf
CkMime::setCkContentType(partWatchHtml, "text/watch-html")
CkMime::setCkCharset(partWatchHtml, "utf-8")
CkMime::setCkDisposition(partWatchHtml, "inline")
CkMime::setCkEncoding(partWatchHtml, "quoted-printable")
CkMime::ckSetBody(partWatchHtml,"<b>This is the Watch HTML part</b>")
CkMime::ckAppendPart(mime,partWatchHtml)
Debug CkMime::ckGetMime(mime)
Debug "--"
; 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.i = CkMime::ckCreate()
If partHtml.i = 0
Debug "Failed to create object."
ProcedureReturn
EndIf
CkMime::setCkContentType(partHtml, "text/html")
CkMime::setCkCharset(partHtml, "utf-8")
CkMime::setCkDisposition(partHtml, "inline")
CkMime::setCkEncoding(partHtml, "quoted-printable")
CkMime::ckSetBody(partHtml,"<p>This is the standard HTML part</p>")
CkMime::ckAppendPart(mime,partHtml)
Debug CkMime::ckGetMime(mime)
Debug "--"
; 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::ckSetFromMimeText(email,CkMime::ckGetMime(mime))
Debug CkEmail::ckGetMime(email)
CkEmail::ckDispose(email)
CkMime::ckDispose(mime)
CkMime::ckDispose(partPlainText)
CkMime::ckDispose(partWatchHtml)
CkMime::ckDispose(partHtml)
ProcedureReturn
EndProcedure