CkPython
CkPython
POP3 Verify Signed (S/MIME) Email
Demonstrates how to download and verify digitally signed S/MIME email.Chilkat CkPython Downloads
import sys
import chilkat
success = False
# This example requires the Chilkat API to have been previously unlocked.
# See Global Unlock Sample for sample code.
mailman = chilkat.CkMailMan()
# Set the POP3 server's hostname
mailman.put_MailHost("pop.example.com")
# Set the POP3 login/password.
mailman.put_PopUsername("myLogin")
mailman.put_PopPassword("myPassword")
stUidls = chilkat.CkStringTable()
success = mailman.FetchUidls(stUidls)
if (success == False):
print(mailman.lastErrorText())
sys.exit()
email = chilkat.CkEmail()
cert = chilkat.CkCert()
count = stUidls.get_Count()
i = 0
while i < count :
# Download the full email.
success = mailman.FetchByUidl(stUidls.stringAt(i),False,0,email)
if (success == False):
print(mailman.lastErrorText())
sys.exit()
print(str(i))
print("From: " + email.ck_from())
print("Subject: " + email.subject())
# 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):
print("This email was signed.")
# Check to see if the signatures were verified.
if (email.get_SignaturesValid() == True):
print("Digital signature(s) verified.")
print("Signer: " + email.signedBy())
success = email.LastSignerCert(0,cert)
if (success == False):
print(email.lastErrorText())
sys.exit()
print("Signing cert: " + cert.subjectCN())
else:
print("Digital signature verification failed.")
i = i + 1
mailman.Pop3EndSession()