![]() |
Chilkat HOME Android™ AutoIt C C# C++ Chilkat2-Python CkPython Classic ASP DataFlex Delphi DLL Go Java Node.js Objective-C PHP Extension Perl PowerBuilder PowerShell PureBasic Ruby SQL Server Swift Tcl Unicode C Unicode C++ VB.NET VBScript Visual Basic 6.0 Visual FoxPro Xojo Plugin
(DataFlex) Send Signed Email using PFX File (long version)Demonstrates how to send a signed email using a digital certificate w/ private key stored in a PFX file. Note: This example requires Chilkat v10.1.2 or greater.
Use ChilkatAx-win32.pkg Procedure Test Handle hoMailman Variant vEmail Handle hoEmail Boolean iSuccess Variant vCert Store Handle hoCertStore Variant vJsonE Handle hoJsonE Variant vCert Handle hoCert Variant vCert 2 Handle hoCert2 String sTemp1 // This example requires the Chilkat API to have been previously unlocked. // See Global Unlock Sample for sample code. // The mailman object is used for sending and receiving email. Get Create (RefClass(cComChilkatMailMan)) To hoMailman If (Not(IsComObjectCreated(hoMailman))) Begin Send CreateComObject of hoMailman End // Set the SMTP server. Set ComSmtpHost Of hoMailman To "smtp.mymailserver.com" // Create a new email object Get Create (RefClass(cComChilkatEmail)) To hoEmail If (Not(IsComObjectCreated(hoEmail))) Begin Send CreateComObject of hoEmail End Set ComSubject Of hoEmail To "This email is signed" Set ComBody Of hoEmail To "This is a digitally signed mail" Set ComFrom Of hoEmail To "Chilkat Admin <admin@chilkatsoft.com>" Get ComAddTo Of hoEmail "Chilkat Support" "support@chilkatsoft.com" To iSuccess // Indicate that the email should be sent signed. Set ComSendSigned Of hoEmail To True // Load a PFX file into a certificate store object. // Then locate the certificate matching the sender's email address, // and use it for signing. // (a PFX file may contain more than one certificate.) Get Create (RefClass(cComChilkatCertStore)) To hoCertStore If (Not(IsComObjectCreated(hoCertStore))) Begin Send CreateComObject of hoCertStore End // The 1st argument is the path of the PFX file, the 2nd arg is the // PFX file's password: Get ComLoadPfxFile Of hoCertStore "/pfx_files/chilkatsoft_secret.pfx" "secret" To iSuccess If (iSuccess <> True) Begin Get ComLastErrorText Of hoCertStore To sTemp1 Showln sTemp1 Procedure_Return End // Find the certificate for the email address: Get Create (RefClass(cComChilkatJsonObject)) To hoJsonE If (Not(IsComObjectCreated(hoJsonE))) Begin Send CreateComObject of hoJsonE End Get ComUpdateString Of hoJsonE "email" "admin@chilkatsoft.com" To iSuccess Get Create (RefClass(cComChilkatCert)) To hoCert If (Not(IsComObjectCreated(hoCert))) Begin Send CreateComObject of hoCert End Get pvComObject of hoJsonE to vJsonE Get pvComObject of hoCert to vCert Get ComFindCert Of hoCertStore vJsonE vCert To iSuccess If (iSuccess = False) Begin Get ComLastErrorText Of hoCertStore To sTemp1 Showln sTemp1 Procedure_Return End // Alternatively, if a PFX file is known to contain a single certificate, // you may load it directly into a Chilkat certificate object. // This snippet of source code shows how: Get Create (RefClass(cComChilkatCert)) To hoCert2 If (Not(IsComObjectCreated(hoCert2))) Begin Send CreateComObject of hoCert2 End // The 1st argument is the filename, the 2nd arg is the // PFX file's password: Get ComLoadPfxFile Of hoCert2 "/pfx_files/chilkatsoft_secret.pfx" "secret" To iSuccess If (iSuccess <> True) Begin Get ComLastErrorText Of hoCert2 To sTemp1 Showln sTemp1 Procedure_Return End // This example will use the cert from the certStore... Get pvComObject of hoCert to vCert Get ComSetSigningCert Of hoEmail vCert To iSuccess // Signed email can be sent in two different ways. // In a multipart/signed email, the signature is attached as a separate MIME part. // In an opaque email (signedData) the content of the email is encapsulated within the signature // and the email is sent as "application/pkcs7-mime". // Either should be fine, but some receiving systems might require one or the other.. Set ComOpaqueSigning Of hoMailman To False // Send a signed email. 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 End Else Begin // The LastErrorText property provides information // even when successful. Get ComLastErrorText Of hoMailman To sTemp1 Showln sTemp1 Showln "Mail Sent!" End End_Procedure |
© 2000-2025 Chilkat Software, Inc. All Rights Reserved.