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
(C) POP3 Verify Signed (S/MIME) EmailDemonstrates how to download and verify digitally signed S/MIME email.
#include <C_CkMailMan.h> #include <C_CkStringArray.h> #include <C_CkEmail.h> #include <C_CkCert.h> void ChilkatSample(void) { HCkMailMan mailman; BOOL success; HCkStringArray sa; HCkEmail email; const char *uidl; int i; HCkCert cert; // This example requires the Chilkat API to have been previously unlocked. // See Global Unlock Sample for sample code. mailman = CkMailMan_Create(); // Set the POP3 server's hostname CkMailMan_putMailHost(mailman,"pop.someMailServer.com"); // Set the POP3 login/password. CkMailMan_putPopUsername(mailman,"myLogin"); CkMailMan_putPopPassword(mailman,"myPassword"); sa = CkMailMan_GetUidls(mailman); if (CkMailMan_getLastMethodSuccess(mailman) == FALSE) { printf("%s\n",CkMailMan_lastErrorText(mailman)); CkMailMan_Dispose(mailman); return; } i = 0; while (i < CkStringArray_getCount(sa)) { uidl = CkStringArray_getString(sa,i); email = CkMailMan_FetchEmail(mailman,uidl); if (CkMailMan_getLastMethodSuccess(mailman) == FALSE) { printf("%s\n",CkMailMan_lastErrorText(mailman)); CkStringArray_Dispose(sa); CkMailMan_Dispose(mailman); return; } printf("%s\n",CkEmail_ck_from(email)); printf("%s\n",CkEmail_subject(email)); // The security layers of signed and/or encrypted emails // are automatically "unwrapped" when loaded into // a Chilkat email object. // An application only needs to check to see if an email // was received signed or encrypted, and then examine // the success/failure. For example: if (CkEmail_getReceivedSigned(email) == TRUE) { printf("This email was signed.\n"); // Check to see if the signatures were verified. if (CkEmail_getSignaturesValid(email) == TRUE) { printf("Digital signature(s) verified.\n"); printf("Signer: %s\n",CkEmail_signedBy(email)); // The certificate used for signing may be obtained // by calling email.GetSignedByCert. cert = CkEmail_GetSignedByCert(email); if (CkEmail_getLastMethodSuccess(email) == FALSE) { printf("Failed to get signing certificate object.\n"); } else { printf("Signing cert: %s\n",CkCert_subjectCN(cert)); CkCert_Dispose(cert); } } else { printf("Digital signature verification failed.\n"); } } CkEmail_Dispose(email); i = i + 1; } CkStringArray_Dispose(sa); CkMailMan_Pop3EndSession(mailman); CkMailMan_Dispose(mailman); } |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.