Sample code for 30+ languages & platforms
Visual FoxPro

Add a PFX Source to MailMan from BinData

See more POP3 Examples

Demonstrates the Chilkat MailMan.AddPfxSourceBd method, which adds a PFX/PKCS#12 certificate store to the MailMan object's internal list of sources used for locating certificates and private keys. The first argument is a BinData containing the PFX bytes and the second is the PFX password. This example loads a PFX into a BinData, registers it, and fetches a message Chilkat can decrypt.

Background: This is the in-memory (BinData) counterpart to AddPfxSourceFile. It is the right choice when the PFX bytes come from somewhere other than a file — a database, a secrets manager, or an HTTPS download — letting you supply the certificate and private key without first writing sensitive key material to disk.

Chilkat Visual FoxPro Downloads

Visual FoxPro
LOCAL lnSuccess
LOCAL loMailman
LOCAL loBdPfx
LOCAL loEmail

lnSuccess = 0

*  Demonstrates the MailMan.AddPfxSourceBd method, which adds a PFX/PKCS#12 certificate store
*  to the MailMan object's internal list of sources used for locating certificates and
*  private keys.  The 1st argument is a BinData containing the PFX bytes and the 2nd is the
*  PFX password.

loMailman = CreateObject('Chilkat.MailMan')

*  Configure the POP3 server connection.
loMailman.MailHost = "pop.example.com"
loMailman.MailPort = 995
loMailman.PopSsl = 1
loMailman.PopUsername = "user@example.com"
loMailman.PopPassword = "myPassword"

*  Load the PFX bytes into a BinData (they could come from a file, database, or secrets store).
loBdPfx = CreateObject('Chilkat.BinData')
lnSuccess = loBdPfx.LoadFile("qa_data/certs/decryption.pfx")
IF (lnSuccess = 0) THEN
    ? loBdPfx.LastErrorText
    RELEASE loMailman
    RELEASE loBdPfx
    CANCEL
ENDIF

*  Add the PFX as a source of certificates and private keys.
lnSuccess = loMailman.AddPfxSourceBd(loBdPfx,"pfx_password")
IF (lnSuccess = 0) THEN
    ? loMailman.LastErrorText
    RELEASE loMailman
    RELEASE loBdPfx
    CANCEL
ENDIF

*  Fetch a message; if it is encrypted, Chilkat can decrypt it using the PFX source.
loEmail = CreateObject('Chilkat.Email')
lnSuccess = loMailman.FetchOne(0,0,1,loEmail)
IF (lnSuccess = 0) THEN
    ? loMailman.LastErrorText
    RELEASE loMailman
    RELEASE loBdPfx
    RELEASE loEmail
    CANCEL
ENDIF

? "Decrypted = " + STR(loEmail.Decrypted)

*  Note: The path "qa_data/certs/decryption.pfx" is a relative local filesystem path,
*  relative to the current working directory of the running application.

*  Note: Explicitly connecting/authenticating is optional.  Chilkat MailMan automatically
*  connects and authenticates -- using the property settings above -- whenever a server
*  operation requires it.  Calling the explicit connect/authenticate methods can still be
*  helpful to determine whether a failure occurs while connecting or while authenticating.

RELEASE loMailman
RELEASE loBdPfx
RELEASE loEmail