-- requires an SMTP server to send emails local smtp = require("socket.smtp") local ltn12 = require("ltn12") local mime = require("mime") from = "" rcpt = { "" } -- the multipart message definition mesgt = { headers = { to = "Bob ", subject = "Sending attachment over e-mail test" }, body = { -- the message content [1] = { body = "Sending you a nice file! :D" }, -- the file attachment [2] = { headers = { ["content-type"] = 'attachment; name="testfile.bin"', ["content-disposition"] = 'attachment; filename="testfile.bin"', ["content-description"] = 'test binary file', ["content-transfer-encoding"] = "BASE64" }, body = ltn12.source.chain( ltn12.source.file( io.open( "/path/to/testfile.bin", "rb")), ltn12.filter.chain( mime.encode("base64"), mime.wrap() ) ) } } } -- send the message r, e = smtp.send{ from = from, rcpt = rcpt, source = smtp.message(mesgt) }