Sample code for 30+ languages & platforms
Lianja

SMTP NTLM Authentication

See more SMTP Examples

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

Chilkat Lianja Downloads

Lianja
llSuccess = .F.

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

loMailman = createobject("CkMailMan")

// Specify your particular mail server's SMTP settings.
loMailman.SmtpHost = "smtp.my_mail_server.com"
loMailman.SmtpPort = 587
loMailman.StartTLS = .T.

// This assumes you know your SMTP server supports NTLM authentication.
// To explicitly request NTLM authentication, set the SmtpAuthMethod property = "ntlm".
loMailman.SmtpAuthMethod = "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.

llUseCurrentWindowsUser = .T.

if (llUseCurrentWindowsUser = .T.) 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"
    loMailman.SmtpUsername = "default"
    loMailman.SmtpPassword = "default"
else
    // Explicitly specify the SMTP username/password
    // The SMTP username is your email account username, which is often your email address.
    loMailman.SmtpUsername = "your_smtp_username_or_email_address"
    loMailman.SmtpPassword = "your_password"
endif

loEmail = createobject("CkEmail")

loEmail.Subject = "This is a test"
loEmail.Body = "This is a test"
// Don't forget to change this to use your email addresses..
loEmail.From = "Chilkat Support <support@chilkatsoft.com>"
llSuccess = loEmail.AddTo("Chilkat Admin","admin@chilkatsoft.com")
// To add more recipients, call AddTo, AddCC, or AddBcc once per recipient.

llSuccess = loMailman.SendEmail(loEmail)
if (llSuccess <> .T.) then
    ? loMailman.LastErrorText
    release loMailman
    release loEmail
    return
endif

llSuccess = loMailman.CloseSmtpConnection()
if (llSuccess <> .T.) then
    ? "Connection to SMTP server not closed cleanly."
endif

? "Mail Sent!"


release loMailman
release loEmail