DataFlex
DataFlex
Mailgun Send Email using MIME
See more Mailgun Examples
Send an email using MIME. This allows for the Chilkat email object to be used to construct the email. Then it can be sent using Mailgun.Chilkat DataFlex Downloads
Use ChilkatAx-win32.pkg
Procedure Test
Boolean iSuccess
Handle hoEmail
String sContentType
String sHtml
Handle hoHttp
Variant vReq
Handle hoReq
Variant vResp
Handle hoResp
Variant vSbResponseBody
Handle hoSbResponseBody
Handle hoJResp
Integer iRespStatusCode
String sId
String sMessage
String sTemp1
Boolean bTemp1
Move False To iSuccess
// This example assumes the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
// We're going to create an email that contains an .zip attachment,
// and also both plain-text and HTML alternative bodies.
// The HTML body will include an image.
Get Create (RefClass(cComChilkatEmail)) To hoEmail
If (Not(IsComObjectCreated(hoEmail))) Begin
Send CreateComObject of hoEmail
End
// Adding attachments, HTML/plain-text bodies, etc can be done
// in any order:
// Add an attachment
Get ComAddFileAttachment Of hoEmail "qa_data/hamlet.zip" To sContentType
Get ComLastMethodSuccess Of hoEmail To bTemp1
If (bTemp1 = False) Begin
Get ComLastErrorText Of hoEmail To sTemp1
Showln sTemp1
Procedure_Return
End
// Add some headers:
Set ComSubject Of hoEmail To "This is a complex email"
// Please change this email address before testing.
Get ComAddTo Of hoEmail "Joe Example" "joe@example.com" To iSuccess
Set ComFrom Of hoEmail To "Your Name <mailgun@YOUR_DOMAIN_NAME>"
// Add a plain-text body:
Get ComAddPlainTextAlternativeBody Of hoEmail "This is the plain-text body" To iSuccess
// Add an image that will be embedded in the HTML body.
Get ComAddRelatedFile2 Of hoEmail "qa_data/jpg/starfish.jpg" "starfish.jpg" To iSuccess
If (iSuccess = False) Begin
Get ComLastErrorText Of hoEmail To sTemp1
Showln sTemp1
Procedure_Return
End
// Add an HTML body:
Move '<html><body><b>This is the HTML body</b><br><img src="starfish.jpg"></body></html>' To sHtml
Get ComAddHtmlAlternativeBody Of hoEmail sHtml To iSuccess
// ------------------------------------------------------------------------
// Send the above email using Mailgun
Get Create (RefClass(cComChilkatHttp)) To hoHttp
If (Not(IsComObjectCreated(hoHttp))) Begin
Send CreateComObject of hoHttp
End
// Implements the following CURL command:
Set ComLogin Of hoHttp To "api"
Set ComPassword Of hoHttp To "sending_api_key" // Replace with your actual sending API key.
Get Create (RefClass(cComChilkatHttpRequest)) To hoReq
If (Not(IsComObjectCreated(hoReq))) Begin
Send CreateComObject of hoReq
End
Set ComHttpVerb Of hoReq To "POST"
Set ComPath Of hoReq To "/v3/YOUR_DOMAIN_NAME/messages.mime"
Set ComContentType Of hoReq To "multipart/form-data"
Send ComAddParam To hoReq "from" "Your Name <mailgun@YOUR_DOMAIN_NAME>"
Send ComAddParam To hoReq "to" "Joe Example <joe@example.com>"
Get ComGetMime Of hoEmail To sTemp1
Get ComAddStringForUpload2 Of hoReq "message" "message.eml" sTemp1 "utf-8" "application/octet-stream" To iSuccess
Get Create (RefClass(cComChilkatHttpResponse)) To hoResp
If (Not(IsComObjectCreated(hoResp))) Begin
Send CreateComObject of hoResp
End
Get pvComObject of hoReq to vReq
Get pvComObject of hoResp to vResp
Get ComHttpSReq Of hoHttp "api.mailgun.net" 443 True vReq vResp To iSuccess
If (iSuccess = False) Begin
Get ComLastErrorText Of hoHttp To sTemp1
Showln sTemp1
Procedure_Return
End
Get Create (RefClass(cComChilkatStringBuilder)) To hoSbResponseBody
If (Not(IsComObjectCreated(hoSbResponseBody))) Begin
Send CreateComObject of hoSbResponseBody
End
Get pvComObject of hoSbResponseBody to vSbResponseBody
Get ComGetBodySb Of hoResp vSbResponseBody To iSuccess
Get Create (RefClass(cComChilkatJsonObject)) To hoJResp
If (Not(IsComObjectCreated(hoJResp))) Begin
Send CreateComObject of hoJResp
End
Get pvComObject of hoSbResponseBody to vSbResponseBody
Get ComLoadSb Of hoJResp vSbResponseBody To iSuccess
Set ComEmitCompact Of hoJResp To False
Showln "Response Body:"
Get ComEmit Of hoJResp To sTemp1
Showln sTemp1
Get ComStatusCode Of hoResp To iRespStatusCode
Showln "Response Status Code = " iRespStatusCode
If (iRespStatusCode >= 400) Begin
Showln "Response Header:"
Get ComHeader Of hoResp To sTemp1
Showln sTemp1
Showln "Failed."
Procedure_Return
End
// Sample JSON response:
// (Sample code for parsing the JSON response is shown below)
// {
// "id": "<20210429234809.1.2D550E1C94D3D98F@sandbox0e542e4c577f4bbb98c8bf6b6bca727b.mailgun.org>",
// "message": "Queued. Thank you."
// }
// Sample code for parsing the JSON response...
// Use the following online tool to generate parsing code from sample JSON:
// Generate Parsing Code from JSON
Get ComStringOf Of hoJResp "id" To sId
Get ComStringOf Of hoJResp "message" To sMessage
End_Procedure