DataFlex
DataFlex
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 DataFlex Downloads
Use ChilkatAx-win32.pkg
Procedure Test
Boolean iSuccess
Handle hoMime
Variant vPTxt
Handle hoPTxt
Variant vMpRelated
Handle hoMpRelated
Variant vPHtml
Handle hoPHtml
Variant vPJpg
Handle hoPJpg
String sTemp1
Move False To iSuccess
// This example requires the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
Get Create (RefClass(cComChilkatMime)) To hoMime
If (Not(IsComObjectCreated(hoMime))) Begin
Send CreateComObject of hoMime
End
// The contents of this MIME file are shown below,
// and is also available at https://www.chilkatsoft.com/sampleMime.txt
Get ComLoadMimeFile Of hoMime "qa_data/mime/sampleMime.txt" To iSuccess
If (iSuccess = False) Begin
Get ComLastErrorText Of hoMime To sTemp1
Showln sTemp1
Procedure_Return
End
// 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.
Get Create (RefClass(cComChilkatMime)) To hoPTxt
If (Not(IsComObjectCreated(hoPTxt))) Begin
Send CreateComObject of hoPTxt
End
Get pvComObject of hoPTxt to vPTxt
Get ComPartAt Of hoMime 0 vPTxt To iSuccess
If (iSuccess = False) Begin
Get ComLastErrorText Of hoMime To sTemp1
Showln sTemp1
Procedure_Return
End
Get ComSaveBody Of hoPTxt "qa_output/textPart.txt" To iSuccess
// Save the HTML part.
Get Create (RefClass(cComChilkatMime)) To hoMpRelated
If (Not(IsComObjectCreated(hoMpRelated))) Begin
Send CreateComObject of hoMpRelated
End
Get pvComObject of hoMpRelated to vMpRelated
Get ComPartAt Of hoMime 1 vMpRelated To iSuccess
If (iSuccess = False) Begin
Get ComLastErrorText Of hoMime To sTemp1
Showln sTemp1
Procedure_Return
End
Get Create (RefClass(cComChilkatMime)) To hoPHtml
If (Not(IsComObjectCreated(hoPHtml))) Begin
Send CreateComObject of hoPHtml
End
Get pvComObject of hoPHtml to vPHtml
Get ComPartAt Of hoMpRelated 0 vPHtml To iSuccess
If (iSuccess = False) Begin
Get ComLastErrorText Of hoMpRelated To sTemp1
Showln sTemp1
Procedure_Return
End
Get ComSaveBody Of hoPHtml "qa_output/htmlPart.html" To iSuccess
// Save the JPG binary data. (The data is automatically base64 decoded prior to saving.)
Get Create (RefClass(cComChilkatMime)) To hoPJpg
If (Not(IsComObjectCreated(hoPJpg))) Begin
Send CreateComObject of hoPJpg
End
Get pvComObject of hoPJpg to vPJpg
Get ComPartAt Of hoMpRelated 1 vPJpg To iSuccess
If (iSuccess = False) Begin
Get ComLastErrorText Of hoMpRelated To sTemp1
Showln sTemp1
Procedure_Return
End
Get ComSaveBody Of hoPJpg "qa_output/jpgPart.jpg" To iSuccess
// --------------------------------------------------------------
// --------------------------------------------------------------
// 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. <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--
//
End_Procedure