PureBasic
PureBasic
SMTP NTLM Authentication
See more SMTP Examples
Demonstrates how to specify NTLM authentication for sending email via SMTP.Chilkat PureBasic Downloads
IncludeFile "CkEmail.pb"
IncludeFile "CkMailMan.pb"
Procedure ChilkatExample()
success.i = 0
; This example requires the Chilkat API to have been previously unlocked.
; See Global Unlock Sample for sample code.
mailman.i = CkMailMan::ckCreate()
If mailman.i = 0
Debug "Failed to create object."
ProcedureReturn
EndIf
; Specify your particular mail server's SMTP settings.
CkMailMan::setCkSmtpHost(mailman, "smtp.my_mail_server.com")
CkMailMan::setCkSmtpPort(mailman, 587)
CkMailMan::setCkStartTLS(mailman, 1)
; This assumes you know your SMTP server supports NTLM authentication.
; To explicitly request NTLM authentication, set the SmtpAuthMethod property = "ntlm".
CkMailMan::setCkSmtpAuthMethod(mailman, "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.
useCurrentWindowsUser.i = 1
If useCurrentWindowsUser = 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"
CkMailMan::setCkSmtpUsername(mailman, "default")
CkMailMan::setCkSmtpPassword(mailman, "default")
Else
; Explicitly specify the SMTP username/password
; The SMTP username is your email account username, which is often your email address.
CkMailMan::setCkSmtpUsername(mailman, "your_smtp_username_or_email_address")
CkMailMan::setCkSmtpPassword(mailman, "your_password")
EndIf
email.i = CkEmail::ckCreate()
If email.i = 0
Debug "Failed to create object."
ProcedureReturn
EndIf
CkEmail::setCkSubject(email, "This is a test")
CkEmail::setCkBody(email, "This is a test")
; Don't forget to change this to use your email addresses..
CkEmail::setCkFrom(email, "Chilkat Support <support@chilkatsoft.com>")
success = CkEmail::ckAddTo(email,"Chilkat Admin","admin@chilkatsoft.com")
; To add more recipients, call AddTo, AddCC, or AddBcc once per recipient.
success = CkMailMan::ckSendEmail(mailman,email)
If success <> 1
Debug CkMailMan::ckLastErrorText(mailman)
CkMailMan::ckDispose(mailman)
CkEmail::ckDispose(email)
ProcedureReturn
EndIf
success = CkMailMan::ckCloseSmtpConnection(mailman)
If success <> 1
Debug "Connection to SMTP server not closed cleanly."
EndIf
Debug "Mail Sent!"
CkMailMan::ckDispose(mailman)
CkEmail::ckDispose(email)
ProcedureReturn
EndProcedure