Swift
Swift
Mailgun Send Send HTML Email with Attachments and HTML Images
See more Mailgun Examples
Sends an HTML email with images and attachments.Chilkat Swift Downloads
func chilkatTest() {
var success: Bool = false
// This example assumes the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
let http = CkoHttp()!
http.login = "api"
http.password = "sending_api_key" // Replace with your actual sending API key.
let req = CkoHttpRequest()!
req.httpVerb = "POST"
req.path = "/v3/YOUR_DOMAIN_NAME/messages"
req.contentType = "multipart/form-data"
// Change YOUR_DOMAIN_NAME to something like "mg.your-domain.com".
req.addParam(name: "from", value: "Your Name <mailgun@YOUR_DOMAIN_NAME>")
req.addParam(name: "to", value: "Joe Example <joe@example.com>")
req.addParam(name: "subject", value: "Hello Joe Example")
req.addParam(name: "html", value: "<html><body><b>This is the HTML body</b><br><img src=\"cid:cidStarfish.jpg\"></body></html>")
// An a attachd file
let bd = CkoBinData()!
success = bd.loadFile(path: "qa_data/hamlet.zip")
if success == false {
print("Failed to load file attachment.")
return
}
req.addBd(forUpload: "attachment", remoteFilename: "hamlet.zip", byteData: bd, contentType: "application/zip")
// add an image as CID
success = bd.loadFile(path: "qa_data/jpg/starfish.jpg")
if success == false {
print("Failed to load HTML image.")
return
}
req.addBd(forUpload: "inline", remoteFilename: "cidStarfish.jpg", byteData: bd, contentType: "image/jpeg")
let resp = CkoHttpResponse()!
success = http.httpSReq(domain: "api.mailgun.net", port: 443, ssl: true, request: req, response: resp)
if success == false {
print("\(http.lastErrorText!)")
return
}
let sbResponseBody = CkoStringBuilder()!
resp.getBodySb(sb: sbResponseBody)
let jResp = CkoJsonObject()!
jResp.loadSb(sb: sbResponseBody)
jResp.emitCompact = false
print("Response Body:")
print("\(jResp.emit()!)")
var respStatusCode: Int = resp.statusCode.intValue
print("Response Status Code = \(respStatusCode)")
if respStatusCode >= 400 {
print("Response Header:")
print("\(resp.header!)")
print("Failed.")
return
}
// 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
var id: String? = jResp.string(of: "id")
var message: String? = jResp.string(of: "message")
}