Chilkat HOME .NET Core C# Android™ AutoIt C C# C++ Chilkat2-Python CkPython Classic ASP DataFlex Delphi ActiveX Delphi DLL Go Java Lianja Mono C# Node.js Objective-C PHP ActiveX PHP Extension Perl PowerBuilder PowerShell PureBasic Ruby SQL Server Swift 2 Swift 3,4,5... 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.
Use ChilkatAx-win32.pkg Procedure Test Handle hoMailman Variant vEmail Handle hoEmail Boolean iSuccess Handle hoCertStore Variant vCert Handle hoCert Handle hoCert2 String sTemp1 Boolean bTemp1 // 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 Get ComFindCertBySubjectE Of hoCertStore "admin@chilkatsoft.com" To vCert If (IsComObject(vCert)) Begin Get Create (RefClass(cComChilkatCert)) To hoCert Set pvComObject Of hoCert To vCert End Get ComLastMethodSuccess Of hoCertStore To bTemp1 If (bTemp1 = 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 Send Destroy of hoCert Procedure_Return End // This example will use the cert from the certStore... 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 Send Destroy of hoCert End_Procedure |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.