DataFlex
DataFlex
Create Non-Multipart Email with XML Body that is an Attachment
See more SMTP Examples
Creates an email where the only body is a binary WAV file. The technique used in the example could be applied to other binary files, such as PDF, MS-WORD docs, Excel docs, etc.Chilkat DataFlex Downloads
Use ChilkatAx-win32.pkg
Procedure Test
Boolean iSuccess
String sXmlBody
Variant vEmail
Handle hoEmail
Handle hoMailman
String sTemp1
Move False To iSuccess
// This example requires the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
// The goal of this example is to create an email that has this MIME format,
// where the body of the email is XML using base64 encoding,
// and the Content-Type and Content-Disposition are set as indicated.
// Date: Wed, 23 Aug 2023 09:01:52 +0200 (CEST)
// From: joe@example1.com
// Subject: [v=EMCS.NL][a=NL****][k=****][s=0]
// To: mary@example2.com
// MIME-Version: 1.0
// Content-Type: application/octet-stream; charset=us-ascii; name=6bd8dfe259b3a42c90a28a82b5fc6e77.txt
// Content-Transfer-Encoding: Base64
// Content-Disposition: attachment; filename=6bd8dfe259b3a42c90a28a82b5fc6e77.txt
// Message-Id: <......>
//
// <multi-line base64 encoded XML here>
Move True To iSuccess
Move '<ie:IE801 xmlns:ie="urn:publicid:-:EC:DGTAXUD:EMCS:PHASE4:IE801:V3.01" xmlns:tms="urn:publicid:-:EC:DGTAXUD:EMCS:PHASE4:TMS:V3.01">....</ie:IE801>' To sXmlBody
Get Create (RefClass(cComChilkatEmail)) To hoEmail
If (Not(IsComObjectCreated(hoEmail))) Begin
Send CreateComObject of hoEmail
End
// Add subject, TO, FROM, etc.
Set ComSubject Of hoEmail To "[v=EMCS.NL][a=NL****][k=****][s=0]"
Set ComFrom Of hoEmail To "joe@example1.com"
Get ComAddTo Of hoEmail "Mary" "mary@example2.com" To iSuccess
Set ComBody Of hoEmail To sXmlBody
Send ComAddHeaderField To hoEmail "Content-Transfer-Encoding" "Base64"
Send ComAddHeaderField To hoEmail "Content-Type" "application/octet-stream; charset=us-ascii; name=6bd8dfe259b3a42c90a28a82b5fc6e77.txt"
Send ComAddHeaderField To hoEmail "Content-Disposition" "attachment; filename=6bd8dfe259b3a42c90a28a82b5fc6e77.txt"
// Your email is ready to send
Get Create (RefClass(cComChilkatMailMan)) To hoMailman
If (Not(IsComObjectCreated(hoMailman))) Begin
Send CreateComObject of hoMailman
End
Set ComSmtpHost Of hoMailman To "smtp.my_mail_server.com"
Set ComSmtpUsername Of hoMailman To "myUsername"
Set ComSmtpPassword Of hoMailman To "myPassword"
Set ComSmtpPort Of hoMailman To 465
Set ComSmtpSsl Of hoMailman To True
Set ComStartTLS Of hoMailman To True
Get pvComObject of hoEmail to vEmail
Get ComSendEmail Of hoMailman vEmail To iSuccess
If (iSuccess <> True) Begin
Get ComLastErrorText Of hoMailman To sTemp1
Showln sTemp1
Procedure_Return
End
Get ComCloseSmtpConnection Of hoMailman To iSuccess
If (iSuccess <> True) Begin
Showln "Connection to SMTP server not closed cleanly."
End
Showln "Mail Sent!"
End_Procedure