Lua
Lua
Create Non-Multipart Email with XML Body that is an Attachment
See more SMTP Examples
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 Lua Downloads
local chilkat = require("chilkat")
-- This example requires the Chilkat API to have been previously unlocked.
-- See Global Unlock Sample for sample code.
-- The goal of this example is to create an email that has this MIME format,
-- where the body of the email is XML using base64 encoding,
-- and the Content-Type and Content-Disposition are set as indicated.
-- Date: Wed, 23 Aug 2023 09:01:52 +0200 (CEST)
-- From: joe@example1.com
-- Subject: [v=EMCS.NL][a=NL****][k=****][s=0]
-- To: mary@example2.com
-- MIME-Version: 1.0
-- Content-Type: application/octet-stream; charset=us-ascii; name=6bd8dfe259b3a42c90a28a82b5fc6e77.txt
-- Content-Transfer-Encoding: Base64
-- Content-Disposition: attachment; filename=6bd8dfe259b3a42c90a28a82b5fc6e77.txt
-- Message-Id: <......>
--
-- <multi-line base64 encoded XML here>
local success = true
local xmlBody = "<ie:IE801 xmlns:ie=\"urn:publicid:-:EC:DGTAXUD:EMCS:PHASE4:IE801:V3.01\" xmlns:tms=\"urn:publicid:-:EC:DGTAXUD:EMCS:PHASE4:TMS:V3.01\">....</ie:IE801>"
local email = chilkat.Email.new()
-- Add subject, TO, FROM, etc.
email.subject = "[v=EMCS.NL][a=NL****][k=****][s=0]"
email.from = "joe@example1.com"
success = email:add_to("Mary", "mary@example2.com")
email.body = xmlBody
email:add_header_field("Content-Transfer-Encoding", "Base64")
email:add_header_field("Content-Type", "application/octet-stream; charset=us-ascii; name=6bd8dfe259b3a42c90a28a82b5fc6e77.txt")
email:add_header_field("Content-Disposition", "attachment; filename=6bd8dfe259b3a42c90a28a82b5fc6e77.txt")
-- Your email is ready to send
local mailman = chilkat.MailMan.new()
mailman.smtp_host = "smtp.my_mail_server.com"
mailman.smtp_username = "myUsername"
mailman.smtp_password = "myPassword"
mailman.smtp_port = 465
mailman.smtp_ssl = true
mailman.start_tls = true
success = mailman:send_email(email)
if not success then
print(mailman.last_error_text)
return
end
success = mailman:close_smtp_connection()
if not success then
print("Connection to SMTP server not closed cleanly.")
end
print("Mail Sent!")