Ruby
Ruby
POP3 Verify Signed (S/MIME) Email
Demonstrates how to download and verify digitally signed S/MIME email.Chilkat Ruby Downloads
require 'chilkat'
success = false
# This example requires the Chilkat API to have been previously unlocked.
# See Global Unlock Sample for sample code.
mailman = Chilkat::CkMailMan.new()
# 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.new()
success = mailman.FetchUidls(stUidls)
if (success == false)
print mailman.lastErrorText() + "\n";
exit
end
email = Chilkat::CkEmail.new()
cert = Chilkat::CkCert.new()
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() + "\n";
exit
end
print i.to_s() + "\n";
print "From: " + email.ck_from() + "\n";
print "Subject: " + email.subject() + "\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)
print "This email was signed." + "\n";
# Check to see if the signatures were verified.
if (email.get_SignaturesValid() == true)
print "Digital signature(s) verified." + "\n";
print "Signer: " + email.signedBy() + "\n";
success = email.LastSignerCert(0,cert)
if (success == false)
print email.lastErrorText() + "\n";
exit
end
print "Signing cert: " + cert.subjectCN() + "\n";
end
else
print "Digital signature verification failed." + "\n";
end
i = i + 1
end
mailman.Pop3EndSession()