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
(Unicode C) POP3 Verify Signed (S/MIME) EmailDemonstrates how to download and verify digitally signed S/MIME email.
#include <C_CkMailManW.h> #include <C_CkStringArrayW.h> #include <C_CkEmailW.h> #include <C_CkCertW.h> void ChilkatSample(void) { HCkMailManW mailman; BOOL success; HCkStringArrayW sa; HCkEmailW email; const wchar_t *uidl; int i; HCkCertW cert; // This example requires the Chilkat API to have been previously unlocked. // See Global Unlock Sample for sample code. mailman = CkMailManW_Create(); // Set the POP3 server's hostname CkMailManW_putMailHost(mailman,L"pop.someMailServer.com"); // Set the POP3 login/password. CkMailManW_putPopUsername(mailman,L"myLogin"); CkMailManW_putPopPassword(mailman,L"myPassword"); sa = CkMailManW_GetUidls(mailman); if (CkMailManW_getLastMethodSuccess(mailman) == FALSE) { wprintf(L"%s\n",CkMailManW_lastErrorText(mailman)); CkMailManW_Dispose(mailman); return; } i = 0; while (i < CkStringArrayW_getCount(sa)) { uidl = CkStringArrayW_getString(sa,i); email = CkMailManW_FetchEmail(mailman,uidl); if (CkMailManW_getLastMethodSuccess(mailman) == FALSE) { wprintf(L"%s\n",CkMailManW_lastErrorText(mailman)); CkStringArrayW_Dispose(sa); CkMailManW_Dispose(mailman); return; } wprintf(L"%s\n",CkEmailW_ck_from(email)); wprintf(L"%s\n",CkEmailW_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 (CkEmailW_getReceivedSigned(email) == TRUE) { wprintf(L"This email was signed.\n"); // Check to see if the signatures were verified. if (CkEmailW_getSignaturesValid(email) == TRUE) { wprintf(L"Digital signature(s) verified.\n"); wprintf(L"Signer: %s\n",CkEmailW_signedBy(email)); // The certificate used for signing may be obtained // by calling email.GetSignedByCert. cert = CkEmailW_GetSignedByCert(email); if (CkEmailW_getLastMethodSuccess(email) == FALSE) { wprintf(L"Failed to get signing certificate object.\n"); } else { wprintf(L"Signing cert: %s\n",CkCertW_subjectCN(cert)); CkCertW_Dispose(cert); } } else { wprintf(L"Digital signature verification failed.\n"); } } CkEmailW_Dispose(email); i = i + 1; } CkStringArrayW_Dispose(sa); CkMailManW_Pop3EndSession(mailman); CkMailManW_Dispose(mailman); } |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.