Sample code for 30+ languages & platforms
DataFlex

SMTP NTLM Authentication

See more SMTP Examples

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

Chilkat DataFlex Downloads

DataFlex
Use ChilkatAx-win32.pkg

Procedure Test
    Boolean iSuccess
    Handle hoMailman
    Boolean iUseCurrentWindowsUser
    Variant vEmail
    Handle hoEmail
    String sTemp1

    Move False To iSuccess

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

    Get Create (RefClass(cComChilkatMailMan)) To hoMailman
    If (Not(IsComObjectCreated(hoMailman))) Begin
        Send CreateComObject of hoMailman
    End

    // Specify your particular mail server's SMTP settings.
    Set ComSmtpHost Of hoMailman To "smtp.my_mail_server.com"
    Set ComSmtpPort Of hoMailman To 587
    Set ComStartTLS Of hoMailman To True

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

    Move True To iUseCurrentWindowsUser

    If (iUseCurrentWindowsUser = True) Begin
        // 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"
        Set ComSmtpUsername Of hoMailman To "default"
        Set ComSmtpPassword Of hoMailman To "default"
    End
    Else Begin
        // Explicitly specify the SMTP username/password
        // The SMTP username is your email account username, which is often your email address.
        Set ComSmtpUsername Of hoMailman To "your_smtp_username_or_email_address"
        Set ComSmtpPassword Of hoMailman To "your_password"
    End

    Get Create (RefClass(cComChilkatEmail)) To hoEmail
    If (Not(IsComObjectCreated(hoEmail))) Begin
        Send CreateComObject of hoEmail
    End

    Set ComSubject Of hoEmail To "This is a test"
    Set ComBody Of hoEmail To "This is a test"
    // Don't forget to change this to use your email addresses..
    Set ComFrom Of hoEmail To "Chilkat Support <support@chilkatsoft.com>"
    Get ComAddTo Of hoEmail "Chilkat Admin" "admin@chilkatsoft.com" To iSuccess
    // To add more recipients, call AddTo, AddCC, or AddBcc once per recipient.

    Get pvComObject of hoEmail to vEmail
    Get ComSendEmail Of hoMailman vEmail To iSuccess
    If (iSuccess <> True) Begin
        Get ComLastErrorText Of hoMailman To sTemp1
        Showln sTemp1
        Procedure_Return
    End

    Get ComCloseSmtpConnection Of hoMailman To iSuccess
    If (iSuccess <> True) Begin
        Showln "Connection to SMTP server not closed cleanly."
    End

    Showln "Mail Sent!"


End_Procedure