Sample code for 30+ languages & platforms
Visual FoxPro

Add a Custom Header to a Related Item

See more Email Object Examples

Demonstrates the Chilkat Email.AddRelatedHeader method, which adds a custom MIME header field to an existing related item identified by its zero-based index. This example first adds a related style sheet (which becomes index 0) and captures its generated Content-ID, builds an HTML body that references the style sheet by that cid:, then attaches an extra header field to the related item and prints the resulting MIME.

Background: Like attachments, each related item (an inline image, style sheet, etc.) is a MIME part with its own small header block describing that part — Content-Type, Content-ID, Content-Location, and so on. AddRelatedHeader lets you insert additional fields into that per-part block, which is occasionally required for interoperability with clients that look for specific custom headers on embedded resources.

Chilkat Visual FoxPro Downloads

Visual FoxPro
LOCAL loEmail
LOCAL lcCid
LOCAL loSbHtml
LOCAL lnNumReplaced

*  Demonstrates the AddRelatedHeader method, which adds a custom MIME header field to an
*  existing related item, identified by its zero-based index.

loEmail = CreateObject('Chilkat.Email')
loEmail.Subject = "Related item with a custom header"

*  Add a related item first (a style sheet); capture its generated Content-ID.  It becomes
*  related-item index 0.
lcCid = loEmail.AddRelatedString("styles.css","body { color: black; }","utf-8")
IF (loEmail.LastMethodSuccess = 0) THEN
    ? loEmail.LastErrorText
    RELEASE loEmail
    CANCEL
ENDIF

*  Build the HTML body, referencing the related style sheet by its Content-ID.  A
*  placeholder is used and then replaced with the actual Content-ID.
loSbHtml = CreateObject('Chilkat.StringBuilder')
loSbHtml.Append('<html><head><link rel="stylesheet" href="cid:PLACEHOLDER_CID"/></head><body>Styled content.</body></html>')
lnNumReplaced = loSbHtml.Replace("PLACEHOLDER_CID",lcCid)
loEmail.SetHtmlBody(loSbHtml.GetAsString())

*  Add a custom header field to the first related item (index 0).
loEmail.AddRelatedHeader(0,"X-Custom-Related-Header","some value")

*  The custom header now appears in the related item's MIME part.
? loEmail.GetMime()

RELEASE loEmail
RELEASE loSbHtml