Chilkat HOME .NET Core C# Android™ AutoIt C C# C++ Chilkat2-Python CkPython Classic ASP DataFlex Delphi ActiveX Delphi DLL Go Java Lianja Mono C# Node.js Objective-C PHP ActiveX PHP Extension Perl PowerBuilder PowerShell PureBasic Ruby SQL Server Swift 2 Swift 3,4,5... Tcl Unicode C Unicode C++ VB.NET VBScript Visual Basic 6.0 Visual FoxPro Xojo Plugin
(DataFlex) Build a multipart/related MIME MessageDemonstrates how to construct a multipart/related MIME message containing HTML and a related JPG image.
Use ChilkatAx-win32.pkg Procedure Test Boolean iSuccess Handle hoMime Handle hoCrypt Handle hoSbContentId Handle hoSbHtml Integer iNumReplacements Variant vHtmlMime Handle hoHtmlMime Handle hoFac Variant hoJpgBytes Variant vJpgMime Handle hoJpgMime Hdr Handle hoSbContentIdHdr String sTemp1 // This example requires the Chilkat API to have been previously unlocked. // See Global Unlock Sample for sample code. // Start with an empty MIME object... Get Create (RefClass(cComChilkatMime)) To hoMime If (Not(IsComObjectCreated(hoMime))) Begin Send CreateComObject of hoMime End // Initialize it as multipart/related. Get ComNewMultipartRelated Of hoMime To iSuccess // Set a top-level MIME header field. Get ComSetHeaderField Of hoMime "Subject" "Test HTML email with JPG image." To iSuccess // Generate a Content-ID. This will contain random data that will allow // the HTML's "img" tag to reference the image part in the MIME. Get Create (RefClass(cComChilkatCrypt2)) To hoCrypt If (Not(IsComObjectCreated(hoCrypt))) Begin Send CreateComObject of hoCrypt End Set ComEncodingMode Of hoCrypt To "hex" Get Create (RefClass(cComChilkatStringBuilder)) To hoSbContentId If (Not(IsComObjectCreated(hoSbContentId))) Begin Send CreateComObject of hoSbContentId End Get ComAppend Of hoSbContentId "part1." To iSuccess Get ComGenRandomBytesENC Of hoCrypt 4 To sTemp1 Get ComAppend Of hoSbContentId sTemp1 To iSuccess Get ComAppend Of hoSbContentId "." To iSuccess Get ComGenRandomBytesENC Of hoCrypt 4 To sTemp1 Get ComAppend Of hoSbContentId sTemp1 To iSuccess Get ComAppend Of hoSbContentId "@chilkatsoft.com" To iSuccess // Create the HTML body. Get Create (RefClass(cComChilkatStringBuilder)) To hoSbHtml If (Not(IsComObjectCreated(hoSbHtml))) Begin Send CreateComObject of hoSbHtml End Get ComAppend Of hoSbHtml "<html><head>" + (character(13)) + (character(10)) To iSuccess Get ComAppend Of hoSbHtml '<meta http-equiv="Content-Type" content="text/html; charset=utf-8">' + (character(13)) + (character(10)) To iSuccess Get ComAppend Of hoSbHtml " </head>" + (character(13)) + (character(10)) To iSuccess Get ComAppend Of hoSbHtml ' <body bgcolor="#FFFFFF" text="#000000">' + (character(13)) + (character(10)) To iSuccess Get ComAppend Of hoSbHtml ' <p>This is a test. <img src="cid:CONTENT_ID" height="20" width="20"></p>' + (character(13)) + (character(10)) To iSuccess Get ComAppend Of hoSbHtml " </body>" + (character(13)) + (character(10)) To iSuccess Get ComAppend Of hoSbHtml "</html>" + (character(13)) + (character(10)) To iSuccess Get ComGetAsString Of hoSbContentId To sTemp1 Get ComReplace Of hoSbHtml "CONTENT_ID" sTemp1 To iNumReplacements // Create the HTML MIME part. Get Create (RefClass(cComChilkatMime)) To hoHtmlMime If (Not(IsComObjectCreated(hoHtmlMime))) Begin Send CreateComObject of hoHtmlMime End Get ComGetAsString Of hoSbHtml To sTemp1 Get ComSetBodyFromHtml Of hoHtmlMime sTemp1 To iSuccess Set ComEncoding Of hoHtmlMime To "8bit" Set ComCharset Of hoHtmlMime To "utf-8" // Load our JPG image from a file. Get Create (RefClass(cComCkFileAccess)) To hoFac If (Not(IsComObjectCreated(hoFac))) Begin Send CreateComObject of hoFac End Get ComReadEntireFile Of hoFac "qa_data/jpg/starfish20.jpg" To hoJpgBytes // Create an image/jpeg MIME part. Get Create (RefClass(cComChilkatMime)) To hoJpgMime If (Not(IsComObjectCreated(hoJpgMime))) Begin Send CreateComObject of hoJpgMime End Get ComSetBodyFromBinary Of hoJpgMime vJpgBytes To iSuccess // Setting the following properties has the effect of adding // the Content-Type, Content-Transfer-Encoding, and Content-Disposition header fields. // These header fields could also be set via the SetHeaderField method, in which case // the values of the affected properties would be updated. Set ComContentType Of hoJpgMime To "image/jpeg" Set ComName Of hoJpgMime To "starfish20.jpg" Set ComEncoding Of hoJpgMime To "base64" Set ComDisposition Of hoJpgMime To "inline" Set ComFilename Of hoJpgMime To "starfish20.jpg" Get Create (RefClass(cComChilkatStringBuilder)) To hoSbContentIdHdr If (Not(IsComObjectCreated(hoSbContentIdHdr))) Begin Send CreateComObject of hoSbContentIdHdr End Get ComAppend Of hoSbContentIdHdr "<CONTENT_ID>" To iSuccess Get ComGetAsString Of hoSbContentId To sTemp1 Get ComReplace Of hoSbContentIdHdr "CONTENT_ID" sTemp1 To iNumReplacements Get ComGetAsString Of hoSbContentIdHdr To sTemp1 Get ComSetHeaderField Of hoJpgMime "Content-ID" sTemp1 To iSuccess // Add both parts as children of the multipart/related Get pvComObject of hoHtmlMime to vHtmlMime Get ComAppendPart Of hoMime vHtmlMime To iSuccess Get pvComObject of hoJpgMime to vJpgMime Get ComAppendPart Of hoMime vJpgMime To iSuccess Get ComGetMime Of hoMime To sTemp1 Showln sTemp1 // -------------------------------------------------------------- // -------------------------------------------------------------- // This example builds the following MIME message. The boundary // and Content-ID strings contain random data and will be different. // Content-Type: multipart/related; boundary="------------A940F1230E6F0105F03DB2CB" // Subject: Test HTML email with JPG image. // // --------------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-Transfer-Encoding: base64 // Content-Type: image/jpeg; name="starfish20.jpg" // Content-Disposition: inline; filename="starfish20.jpg" // Content-ID: <part1.E16AE3B4.1505C436@chilkatsoft.com> // // /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-- // End_Procedure |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.