Sample code for 30+ languages & platforms
Lua

MailMan GetSentToEmailAddrs

Demonstrates how to get the email addresses accepted by the SMTP server during an SMTP send.

Chilkat Lua Downloads

Lua
local chilkat = require("chilkat")

-- This example assumes the Chilkat API to have been previously unlocked.
-- See Global Unlock Sample for sample code.

-- Demonstrates how to get the successful recipients for the last email sent.

-- Note: Success does not ensure actual delivery, nor does it mean the email address is actually valid.
-- It may be that the email address is invalid and will get bounced at the destination.

-- Also: An SMTP client (such as Chilkat, Mozilla Thunderbird, etc.) is only responsible for "handing off" the email to the SMTP server
-- for delivery (either to a local mailbox, or to a remote mailbox where the SMTP server acts as a relay).
-- The SMTP client's task is ended when the SMTP protocol exchange is completed, and the SMTP server says "OK, I've got it and I'll take it from here.".
-- If the email never actually gets delivered, then there is a problem downstream of the Chilkat-->SMTP server handoff.

local mailman = chilkat.MailMan.new()

mailman.smtp_host = "outlook.office365.com"
mailman.smtp_port = 587
mailman.start_tls = true

-- Set the SMTP login/password
mailman.smtp_username = "OFFICE365-SMTP-LOGIN"
mailman.smtp_password = "OFFICE365-SMTP-PASSWORD"

-- Create a new email object
local email = chilkat.Email.new()

email.subject = "Testing for Chilkat API..."
email.body = "Testing for Chilkat API..."
email.from = "Chilkat Support <my-office365-user@mydomain.com>"
local success = email:add_to("Chilkat Admin", "admin@chilkatsoft.com")
success = email:add_to("Chilkat Support", "support@chilkatsoft.com")
-- To add more recipients, call AddTo, AddCC, or AddBcc once per recipient.

-- Allow SendEmail to succeed even if some recipients are rejected immediately
-- by the SMTP server.
mailman.all_or_none = false

-- Call SendEmail to connect to the SMTP server and send.
-- The connection (i.e. session) to the SMTP server remains
-- open so that subsequent SendEmail calls may use the
-- same connection.
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!")

-- Examine which email addresses were accepted by the SMTP server during the SMTP conversation.
-- (i.e. during the SendEmail)
local acceptedAddrs = ERROR: Method not in Chilkat for Lua: MailMan.GetSentToEmailAddrs
mailman:ERROR()
local numAddrs = acceptedAddrs.count
local i = 0
while i < numAddrs do
    print("Accepted recipient " .. i .. ": " .. acceptedAddrs:get_string(i))
    i = i + 1
end