Sample code for 30+ languages & platforms
Lua

Save All Email Attachments to a Directory

See more Email Object Examples

Demonstrates the Chilkat Email.SaveAllAttachments method, which saves all of the email's attachments to a directory. If the directory or any of its components do not exist, Chilkat creates them automatically. This example adds two attachments and saves them.

Background: Each attachment is written using its own filename. Because those filenames come from the sender and may collide, consider the OverwriteExisting property (which can auto-generate unique names) and RemoveAttachmentPaths (which strips embedded path info) to keep saved files safe and non-clobbering — important when processing untrusted incoming mail.

Chilkat Lua Downloads

Lua
local chilkat = require("chilkat")

-- Demonstrates the SaveAllAttachments method, which saves all attachments to a directory.
-- If the directory (or any of its components) does not exist, Chilkat creates it.

local email = chilkat.Email.new()
email.subject = "Save all attachments"

email:add_string_attachment("a.txt", "first attachment")
email:add_string_attachment("b.txt", "second attachment")

-- Save every attachment into the specified directory.
local success = email:save_all_attachments("qa_output/attachments")
if not success then
    print(email.last_error_text)
    return
end

print("Saved all attachments.")

-- Note: The path "qa_output/..." is a relative local filesystem path,
-- relative to the current working directory of the running application.