Sample code for 30+ languages & platforms
Visual FoxPro

Attach a File to a Multipart MIME Entity

See more MIME Examples

Demonstrates the Chilkat Mime.AppendPartFromFile method, which reads a local file, creates an attachment part, and appends it. The only argument is the file path; the content headers are chosen from the filename extension.

Note: The file paths are relative to the application's current working directory. Absolute paths may also be used. Supply the paths appropriate to your own environment.

Background: This is the one-call way to add an attachment: Chilkat reads the file, infers its Content-Type from the extension, base64-encodes binary content, and appends it as a child part — typically inside a multipart/mixed. It is the building block behind adding attachments to an email, saving you from constructing the part and setting its headers by hand.

Chilkat Visual FoxPro Downloads

Visual FoxPro
LOCAL lnSuccess
LOCAL loMime
LOCAL loBodyPart

lnSuccess = 0

*  Demonstrates the Mime.AppendPartFromFile method, which reads a local file, creates an attachment
*  part, and appends it.  The only argument is the file path; the content headers are chosen from
*  the filename extension.

loMime = CreateObject('Chilkat.Mime')
lnSuccess = loMime.NewMultipartMixed()
IF (lnSuccess = 0) THEN
    ? loMime.LastErrorText
    RELEASE loMime
    CANCEL
ENDIF

*  A message body part.
loBodyPart = CreateObject('Chilkat.Mime')
lnSuccess = loBodyPart.SetBodyFromPlainText("Please see the attached files.")
IF (lnSuccess = 0) THEN
    ? loBodyPart.LastErrorText
    RELEASE loMime
    RELEASE loBodyPart
    CANCEL
ENDIF

lnSuccess = loMime.AppendPart(loBodyPart)
IF (lnSuccess = 0) THEN
    ? loMime.LastErrorText
    RELEASE loMime
    RELEASE loBodyPart
    CANCEL
ENDIF

*  Attach files directly.
lnSuccess = loMime.AppendPartFromFile("qa_data/report.pdf")
IF (lnSuccess = 0) THEN
    ? loMime.LastErrorText
    RELEASE loMime
    RELEASE loBodyPart
    CANCEL
ENDIF

lnSuccess = loMime.AppendPartFromFile("qa_data/photo.jpg")
IF (lnSuccess = 0) THEN
    ? loMime.LastErrorText
    RELEASE loMime
    RELEASE loBodyPart
    CANCEL
ENDIF

? "Number of parts: " + STR(loMime.NumParts)

RELEASE loMime
RELEASE loBodyPart