Sample code for 30+ languages & platforms
Lua

SMTP NTLM Authentication

See more SMTP Examples

Demonstrates how to specify NTLM authentication for sending email via SMTP.

Chilkat Lua Downloads

Lua
local chilkat = require("chilkat")

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

local mailman = chilkat.MailMan.new()

-- Specify your particular mail server's SMTP settings.
mailman.smtp_host = "smtp.my_mail_server.com"
mailman.smtp_port = 587
mailman.start_tls = true

-- This assumes you know your SMTP server supports NTLM authentication.
-- To explicitly request NTLM authentication, set the SmtpAuthMethod property = "ntlm".
mailman.smtp_auth_method = "ntlm"

-- Note: Normally you should avoid setting the SmtpAuthMethod.
-- SMTP servers tell the connecting client the authentication methods it will accept when the initial connection is made.
-- Chilkat will automatically use this information to select and use the most secure auth method supported by the server.

local useCurrentWindowsUser = true

if useCurrentWindowsUser then
    -- If you are running on Windows, and you wish for the NTLM credentials of the current logged-on Windows user to be used,
    -- set the username and password to the string "default"
    mailman.smtp_username = "default"
    mailman.smtp_password = "default"
else
    -- Explicitly specify the SMTP username/password
    -- The SMTP username is your email account username, which is often your email address.
    mailman.smtp_username = "your_smtp_username_or_email_address"
    mailman.smtp_password = "your_password"
end

local email = chilkat.Email.new()

email.subject = "This is a test"
email.body = "This is a test"
-- Don't forget to change this to use your email addresses..
email.from = "Chilkat Support <support@chilkatsoft.com>"
local success = email:add_to("Chilkat Admin", "admin@chilkatsoft.com")
-- To add more recipients, call AddTo, AddCC, or AddBcc once per recipient.

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!")