Sample code for 30+ languages & platforms
Xbase++

SMTP NTLM Authentication

See more SMTP Examples

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

Chilkat Xbase++ Downloads

Xbase++
LOCAL nSuccess
LOCAL oMailman
LOCAL nUseCurrentWindowsUser
LOCAL oEmail

nSuccess := 0

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

oMailman := CreateObject("Chilkat.MailMan")

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

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

nUseCurrentWindowsUser := 1

IF (nUseCurrentWindowsUser == 1)
    //  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"
    oMailman:SmtpUsername := "default"
    oMailman:SmtpPassword := "default"
ELSE
    //  Explicitly specify the SMTP username/password
    //  The SMTP username is your email account username, which is often your email address.
    oMailman:SmtpUsername := "your_smtp_username_or_email_address"
    oMailman:SmtpPassword := "your_password"
ENDIF

oEmail := CreateObject("Chilkat.Email")

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

nSuccess := oMailman:SendEmail(oEmail)
IF (nSuccess != 1)
    ? oMailman:LastErrorText
    oMailman:destroy()
    oEmail:destroy()
    RETURN
ENDIF

nSuccess := oMailman:CloseSmtpConnection()
IF (nSuccess != 1)
    ? "Connection to SMTP server not closed cleanly."
ENDIF

? "Mail Sent!"

oMailman:destroy()
oEmail:destroy()