Sample code for 30+ languages & platforms
Visual FoxPro

Save a MIME Body to a File

See more MIME Examples

Demonstrates how to save a MIME body to a file. The MIME data file used in this example is available at MIME Sample File.

Chilkat Visual FoxPro Downloads

Visual FoxPro
LOCAL lnSuccess
LOCAL loMime
LOCAL loPTxt
LOCAL loMpRelated
LOCAL loPHtml
LOCAL loPJpg

lnSuccess = 0

* This example requires the Chilkat API to have been previously unlocked.
* See Global Unlock Sample for sample code.

loMime = CreateObject('Chilkat.Mime')

* The contents of this MIME file are shown below, 
* and is also available at https://www.chilkatsoft.com/sampleMime.txt
lnSuccess = loMime.LoadMimeFile("qa_data/mime/sampleMime.txt")
IF (lnSuccess = 0) THEN
    ? loMime.LastErrorText
    RELEASE loMime
    CANCEL
ENDIF

* The MIME used in this example has the following nested structure
* 
* multipart/alternative
*     text/plain
*     multipart/related
*         text/html
*         image/jpeg
* 

* This example will save each of the non-multipart parts.
* It will create three files -- a .txt, .html, and .jpg.

* Save the body of the text/plain part.

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

loPTxt.SaveBody("qa_output/textPart.txt")

* Save the HTML part.

loMpRelated = CreateObject('Chilkat.Mime')
lnSuccess = loMime.PartAt(1,loMpRelated)
IF (lnSuccess = 0) THEN
    ? loMime.LastErrorText
    RELEASE loMime
    RELEASE loPTxt
    RELEASE loMpRelated
    CANCEL
ENDIF

loPHtml = CreateObject('Chilkat.Mime')
lnSuccess = loMpRelated.PartAt(0,loPHtml)
IF (lnSuccess = 0) THEN
    ? loMpRelated.LastErrorText
    RELEASE loMime
    RELEASE loPTxt
    RELEASE loMpRelated
    RELEASE loPHtml
    CANCEL
ENDIF

loPHtml.SaveBody("qa_output/htmlPart.html")

* Save the JPG binary data.  (The data is automatically base64 decoded prior to saving.)

loPJpg = CreateObject('Chilkat.Mime')
lnSuccess = loMpRelated.PartAt(1,loPJpg)
IF (lnSuccess = 0) THEN
    ? loMpRelated.LastErrorText
    RELEASE loMime
    RELEASE loPTxt
    RELEASE loMpRelated
    RELEASE loPHtml
    RELEASE loPJpg
    CANCEL
ENDIF

loPJpg.SaveBody("qa_output/jpgPart.jpg")

* --------------------------------------------------------------
* --------------------------------------------------------------
* The MIME sample file loaded at the beginning of this example
* contains the following MIME:

* Subject: Test email.
* Content-Type: multipart/alternative;
* 	boundary="------------DB171738719FB06D67DEBAA0"
* MIME-Version: 1.0
* 
* --------------DB171738719FB06D67DEBAA0
* Content-Type: text/plain; charset="utf-8"; format=flowed
* Content-Transfer-Encoding: 7bit
* 
* This is a test.
* 
* --------------DB171738719FB06D67DEBAA0
* Content-Type: multipart/related;
* 	boundary="------------A940F1230E6F0105F03DB2CB"
* 
* --------------A940F1230E6F0105F03DB2CB
* Content-Type: text/html; charset="utf-8"
* Content-Transfer-Encoding: 8bit
* 
* <html><head>
* <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
*   </head>
*   <body bgcolor="#FFFFFF" text="#000000">
*     <p>This is a test.&nbsp; <img src="cid:part1.E16AE3B4.1505C436@chilkatsoft.com" height="20" width="20"></p>
*   </body>
* </html>
* 
* --------------A940F1230E6F0105F03DB2CB
* Content-Type: image/jpeg; name="starfish20.jpg"
* Content-Transfer-Encoding: base64
* Content-ID: <part1.E16AE3B4.1505C436@chilkatsoft.com>
* Content-Disposition: inline; filename="starfish20.jpg"
* 
* /9j/4AAQSkZJRgABAQEASABIAAD//gAmRmlsZSB3cml0dGVuIGJ5IEFkb2JlIFBob3Rvc2hvcD8g
* NC4w/9sAQwAQCwwODAoQDg0OEhEQExgoGhgWFhgxIyUdKDozPTw5Mzg3QEhcTkBEV0U3OFBtUVdf
* YmdoZz5NcXlwZHhcZWdj/9sAQwEREhIYFRgvGhovY0I4QmNjY2NjY2NjY2NjY2NjY2NjY2NjY2Nj
* Y2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2Nj/8IAEQgAFAAUAwERAAIRAQMRAf/EABcAAAMBAAAA
* AAAAAAAAAAAAAAIDBAX/xAAYAQADAQEAAAAAAAAAAAAAAAABAgMEAP/aAAwDAQACEAMQAAAB2kZY
* NNEijWKddfTmLgALWH//xAAbEAACAgMBAAAAAAAAAAAAAAABAgMRAAQSE//aAAgBAQABBQL0XqN+
* pM2aqJGMiqFFCyg7z//EABwRAAICAgMAAAAAAAAAAAAAAAERAAIQIQMSUf/aAAgBAwEBPwHqU5aq
* Axx+y1tMQl4elj//xAAcEQEAAQUBAQAAAAAAAAAAAAABEQACEBIhA1H/2gAIAQIBAT8B3Bhqy7Zc
* enyiwmGgDhiOzj//xAAdEAABAwUBAAAAAAAAAAAAAAABAAIREBIhIkFR/9oACAEBAAY/ArZyn+Cg
* xtxWuJaoCnqDuin/xAAcEAABBAMBAAAAAAAAAAAAAAABABEhYRAxQVH/2gAIAQEAAT8hkEwPUUR9
* DYfE4nxtRpIkBTsayuALIiuY/9oADAMBAAIAAwAAABDWPTsf/8QAGhEAAwADAQAAAAAAAAAAAAAA
* AAEREDFBIf/aAAgBAwEBPxC0DVPcWm+Ce4OesrkE6bjH/8QAGBEBAQEBAQAAAAAAAAAAAAAAAREA
* QRD/2gAIAQIBAT8QahMiOc8YgSrnTY3ELclHXn//xAAcEAEBAAIDAQEAAAAAAAAAAAABEQAhMUFx
* EFH/2gAIAQEAAT8Qn3igmSZSj+c4N4zapMy9IjFV98wncN2iuLFsCEbDGxQkI6RO/n//2Q==
* 
* --------------A940F1230E6F0105F03DB2CB--
* 
* --------------DB171738719FB06D67DEBAA0--
* 

RELEASE loMime
RELEASE loPTxt
RELEASE loMpRelated
RELEASE loPHtml
RELEASE loPJpg