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
(PureBasic) Send Signed Email using PFX FileDemonstrates how to send a signed email using a digital certificate w/ private key stored in a PFX file.
IncludeFile "CkEmail.pb" IncludeFile "CkMailMan.pb" Procedure ChilkatExample() ; 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. mailman.i = CkMailMan::ckCreate() If mailman.i = 0 Debug "Failed to create object." ProcedureReturn EndIf ; Set the SMTP server. CkMailMan::setCkSmtpHost(mailman, "smtp.mymailserver.com") ; Create a new email object email.i = CkEmail::ckCreate() If email.i = 0 Debug "Failed to create object." ProcedureReturn EndIf CkEmail::setCkSubject(email, "This email is signed") CkEmail::setCkBody(email, "This is a digitally signed mail") CkEmail::setCkFrom(email, "Chilkat Admin <admin@chilkatsoft.com>") success.i = CkEmail::ckAddTo(email,"Chilkat Support","support@chilkatsoft.com") ; Indicate that the email should be sent signed. CkEmail::setCkSendSigned(email, 1) ; Tell the mailman to use a PFX file as a source for locating ; the certificate and private key required for signing. ; The certificate chosen for signing will be the one that ; matches the sender's email address, which also has ; a private key. All intermediate certs in the chain of ; authentication, up to and including the root, will ; be included in the signature. success = CkMailMan::ckAddPfxSourceFile(mailman,"/pfx_files/chilkatsoft_secret.pfx","secret") If success <> 1 Debug CkMailMan::ckLastErrorText(mailman) CkMailMan::ckDispose(mailman) CkEmail::ckDispose(email) ProcedureReturn EndIf ; 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.. CkMailMan::setCkOpaqueSigning(mailman, 0) ; Send a signed email. success = CkMailMan::ckSendEmail(mailman,email) If success <> 1 Debug CkMailMan::ckLastErrorText(mailman) Else ; The LastErrorText property provides information ; even when successful. Debug CkMailMan::ckLastErrorText(mailman) Debug "Mail Sent!" EndIf CkMailMan::ckDispose(mailman) CkEmail::ckDispose(email) ProcedureReturn EndProcedure |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.