Chilkat HOME Android™ Classic ASP C C++ C# Mono C# .NET Core C# C# UWP/WinRT DataFlex Delphi ActiveX Delphi DLL Visual FoxPro Java Lianja MFC Objective-C Perl PHP ActiveX PHP Extension PowerBuilder PowerShell PureBasic CkPython Chilkat2-Python Ruby SQL Server Swift 2 Swift 3,4,5... Tcl Unicode C Unicode C++ Visual Basic 6.0 VB.NET VB.NET UWP/WinRT VBScript Xojo Plugin Node.js Excel Go
(MFC) POP3 Verify Signed (S/MIME) EmailDemonstrates how to download and verify digitally signed S/MIME email.
#include <CkMailMan.h> #include <CkStringArray.h> #include <CkEmail.h> #include <CkCert.h> void ChilkatSample(void) { CkString strOut; // This example requires the Chilkat API to have been previously unlocked. // See Global Unlock Sample for sample code. CkMailMan mailman; bool success; // Set the POP3 server's hostname mailman.put_MailHost("pop.someMailServer.com"); // Set the POP3 login/password. mailman.put_PopUsername("myLogin"); mailman.put_PopPassword("myPassword"); CkStringArray *sa = mailman.GetUidls(); if (mailman.get_LastMethodSuccess() == false) { strOut.append(mailman.lastErrorText()); strOut.append("\r\n"); SetDlgItemText(IDC_EDIT1,strOut.getUnicode()); return; } CkEmail *email = 0; const char *uidl = 0; int i = 0; while (i < sa->get_Count()) { uidl = sa->getString(i); email = mailman.FetchEmail(uidl); if (mailman.get_LastMethodSuccess() == false) { strOut.append(mailman.lastErrorText()); strOut.append("\r\n"); delete sa; SetDlgItemText(IDC_EDIT1,strOut.getUnicode()); return; } strOut.append(email->ck_from()); strOut.append("\r\n"); strOut.append(email->subject()); strOut.append("\r\n"); // 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 (email->get_ReceivedSigned() == true) { strOut.append("This email was signed."); strOut.append("\r\n"); // Check to see if the signatures were verified. if (email->get_SignaturesValid() == true) { strOut.append("Digital signature(s) verified."); strOut.append("\r\n"); strOut.append("Signer: "); strOut.append(email->signedBy()); strOut.append("\r\n"); // The certificate used for signing may be obtained // by calling email.GetSignedByCert. CkCert *cert = 0; cert = email->GetSignedByCert(); if (email->get_LastMethodSuccess() == false) { strOut.append("Failed to get signing certificate object."); strOut.append("\r\n"); } else { strOut.append("Signing cert: "); strOut.append(cert->subjectCN()); strOut.append("\r\n"); delete cert; } } else { strOut.append("Digital signature verification failed."); strOut.append("\r\n"); } } delete email; i = i + 1; } delete sa; mailman.Pop3EndSession(); SetDlgItemText(IDC_EDIT1,strOut.getUnicode()); } |
© 2000-2022 Chilkat Software, Inc. All Rights Reserved.