DataFlex
DataFlex
Create Email with Non-Standard Binary Body
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
Handle hoMime
String sStrMime
Handle hoEmail
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
Get ComSetBodyFromFile Of hoMime "VoiceMessage.wav" To iSuccess
If (iSuccess = False) Begin
Get ComLastErrorText Of hoMime To sTemp1
Showln sTemp1
Procedure_Return
End
// The MIME has this header:
// Content-Disposition: attachment;
// filename="VoiceMessage.wav"
// Content-Transfer-Encoding: base64
// Content-Type: audio/x-wav;
// name="VoiceMessage.wav"
// We don't want the content-disposition to be an
// attachment -- otherwise the email object will self-correct
// and put it in a multipart/mixed format...
Set ComDisposition Of hoMime To ""
Set ComFilename Of hoMime To ""
Get ComGetMime Of hoMime To sStrMime
Showln sStrMime
// Now load it into an email object:
Get Create (RefClass(cComChilkatEmail)) To hoEmail
If (Not(IsComObjectCreated(hoEmail))) Begin
Send CreateComObject of hoEmail
End
Get ComSetFromMimeText Of hoEmail sStrMime To iSuccess
If (iSuccess = False) Begin
Get ComLastErrorText Of hoEmail To sTemp1
Showln sTemp1
Procedure_Return
End
// Add subject, TO, FROM, etc.
Set ComSubject Of hoEmail To "This is a test"
Set ComFrom Of hoEmail To "support@chilkatsoft.com"
Get ComAddTo Of hoEmail "Matt" "matt@chilkatsoft.com" To iSuccess
// Your email is ready to send.
// (but for this example, we'll simply save it to a file...)
Get ComSaveEml Of hoEmail "email.eml" To iSuccess
If (iSuccess = False) Begin
Get ComLastErrorText Of hoEmail To sTemp1
Showln sTemp1
Procedure_Return
End
Showln "OK!"
End_Procedure