PowerShell
PowerShell
POP3 Verify Signed (S/MIME) Email
Demonstrates how to download and verify digitally signed S/MIME email.Chilkat PowerShell Downloads
Add-Type -Path "C:\chilkat\ChilkatDotNet47-x64\ChilkatDotNet47.dll"
$success = $false
# This example requires the Chilkat API to have been previously unlocked.
# See Global Unlock Sample for sample code.
$mailman = New-Object Chilkat.MailMan
# Set the POP3 server's hostname
$mailman.MailHost = "pop.example.com"
# Set the POP3 login/password.
$mailman.PopUsername = "myLogin"
$mailman.PopPassword = "myPassword"
$stUidls = New-Object Chilkat.StringTable
$success = $mailman.FetchUidls($stUidls)
if ($success -eq $false) {
$($mailman.LastErrorText)
exit
}
$email = New-Object Chilkat.Email
$cert = New-Object Chilkat.Cert
$count = $stUidls.Count
$i = 0
while ($i -lt $count) {
# Download the full email.
$success = $mailman.FetchByUidl($stUidls.StringAt($i),$false,0,$email)
if ($success -eq $false) {
$($mailman.LastErrorText)
exit
}
$($i)
$("From: " + $email.From)
$("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.ReceivedSigned -eq $true) {
$("This email was signed.")
# Check to see if the signatures were verified.
if ($email.SignaturesValid -eq $true) {
$("Digital signature(s) verified.")
$("Signer: " + $email.SignedBy)
$success = $email.LastSignerCert(0,$cert)
if ($success -eq $false) {
$($email.LastErrorText)
exit
}
$("Signing cert: " + $cert.SubjectCN)
}
}
else {
$("Digital signature verification failed.")
}
$i = $i + 1
}
$mailman.Pop3EndSession()