AutoIt
AutoIt
Send Signed Email using PFX File
Demonstrates how to send a signed email using a digital certificate w/ private key stored in a PFX file.Chilkat AutoIt Downloads
Local $bSuccess = False
; This example requires the Chilkat API to have been previously unlocked.
; See Global Unlock Sample for sample code.
; The mailman object is used for sending and receiving email.
$oMailman = ObjCreate("Chilkat.MailMan")
; Set the SMTP server.
$oMailman.SmtpHost = "smtp.mymailserver.com"
; Create a new email object
$oEmail = ObjCreate("Chilkat.Email")
$oEmail.Subject = "This email is signed"
$oEmail.Body = "This is a digitally signed mail"
$oEmail.From = "Chilkat Admin <admin@chilkatsoft.com>"
$bSuccess = $oEmail.AddTo("Chilkat Support","support@chilkatsoft.com")
; Indicate that the email should be sent signed.
$oEmail.SendSigned = True
; Tell the mailman to use a PFX file as a source for locating
; the certificate and private key required for signing.
; The certificate chosen for signing will be the one that
; matches the sender's email address, which also has
; a private key. All intermediate certs in the chain of
; authentication, up to and including the root, will
; be included in the signature.
$bSuccess = $oMailman.AddPfxSourceFile("/pfx_files/chilkatsoft_secret.pfx","secret")
If ($bSuccess <> True) Then
ConsoleWrite($oMailman.LastErrorText & @CRLF)
Exit
EndIf
; Signed email can be sent in two different ways.
; In a multipart/signed email, the signature is attached as a separate MIME part.
; In an opaque email (signedData) the content of the email is encapsulated within the signature
; and the email is sent as "application/pkcs7-mime".
; Either should be fine, but some receiving systems might require one or the other..
$oMailman.OpaqueSigning = False
; Send a signed email.
$bSuccess = $oMailman.SendEmail($oEmail)
If ($bSuccess <> True) Then
ConsoleWrite($oMailman.LastErrorText & @CRLF)
Else
; The LastErrorText property provides information
; even when successful.
ConsoleWrite($oMailman.LastErrorText & @CRLF)
ConsoleWrite("Mail Sent!" & @CRLF)
EndIf