Sample code for 30+ languages & platforms
DataFlex

Set an IMAP TLS Client Certificate from a PFX File

See more IMAP Examples

Demonstrates the Chilkat Imap.SetSslClientCertPfx method, which supplies a TLS client certificate and private key from a PKCS #12/PFX file. The first argument is the .pfx or .p12 file path and the second is its password. Call it before connecting.

Note: The certificate path is relative to the application's current working directory. Supply the path to your own certificate file.

Background: A PFX (PKCS #12) file bundles a certificate together with its private key in a single password-protected file — the format Windows and many corporate PKI tools export. This is the counterpart to SetSslClientCertPem: use it when your credentials are packaged as one .pfx rather than as separate PEM files.

Chilkat DataFlex Downloads

DataFlex
Use ChilkatAx-win32.pkg

Procedure Test
    Boolean iSuccess
    Handle hoImap
    String sPfxPassword
    String sTemp1

    Move False To iSuccess

    //  Demonstrates the Imap.SetSslClientCertPfx method, which supplies a TLS client certificate
    //  and private key from a PKCS #12/PFX file.  The 1st argument is the .pfx/.p12 file path and
    //  the 2nd is its password.  It must be called before connecting.

    Get Create (RefClass(cComChilkatImap)) To hoImap
    If (Not(IsComObjectCreated(hoImap))) Begin
        Send CreateComObject of hoImap
    End

    Set ComSsl Of hoImap To True
    Set ComPort Of hoImap To 993

    //  The PFX password is not hard-coded in source.  Insert code here to obtain it from an
    //  interactive prompt, environment variable, or a secrets vault.

    //  Provide the PFX client certificate BEFORE connecting.
    Get ComSetSslClientCertPfx Of hoImap "qa_data/client.pfx" sPfxPassword To iSuccess
    If (iSuccess = False) Begin
        Get ComLastErrorText Of hoImap To sTemp1
        Showln sTemp1
        Procedure_Return
    End

    Get ComConnect Of hoImap "imap.example.com" To iSuccess
    If (iSuccess = False) Begin
        Get ComLastErrorText Of hoImap To sTemp1
        Showln sTemp1
        Procedure_Return
    End

    Get ComLogin Of hoImap "user@example.com" "myPassword" To iSuccess
    If (iSuccess = False) Begin
        Get ComLastErrorText Of hoImap To sTemp1
        Showln sTemp1
        Procedure_Return
    End

    Get ComDisconnect Of hoImap To iSuccess
    If (iSuccess = False) Begin
        Get ComLastErrorText Of hoImap To sTemp1
        Showln sTemp1
        Procedure_Return
    End



End_Procedure