Sample code for 30+ languages & platforms
PHP

Find Certificate for Email Encryption

Demonstrates finding the recipient's certificate in the Windows certificate store and using it to send encrypted email.

Chilkat PHP Downloads

Chilkat2 PHP
<?php

use Chilkat2\Cert;
use Chilkat2\Email;
use Chilkat2\MailMan;

// This example requires the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.

$mailman = new MailMan();

// Set the SMTP server.
$mailman->SmtpHost = 'smtp.example.com';

// Create a new email object
$email = new Email();

$email->Subject = 'This email is encrypted';
$email->Body = 'This is a digitally encrypted mail';
$email->From = 'Joe <joe@example.com>';
// Emails are encrypted using the recipient's certificate.
$recipientEmailAddr = 'jane@example2.com';
$email->AddTo('Jane', $recipientEmailAddr);

// Indicate that the email is to be sent encrypted.
$email->SendEncrypted = true;

// This example demonstrates finding the email encryption certificate
// on a Windows system where the certificate is stored in the Windows
// certificate store.

$cert = new Cert();
// The recipient's certificate is used to encrypt.
// (Because the recipient is the only one in possession of the private key to decrypt.)
try {
    $cert->LoadByEmailAddress($recipientEmailAddr);
} catch (\Chilkat2\Exception $e) {
    echo $e->getMessage(), "\n";
    exit;
}

// Specify the certificate to be used for encryption.
$email->SetEncryptCert($cert);

try {
    $mailman->SendEmail($email);
    echo "Encrypted Mail Sent!\n";
} catch (\Chilkat2\Exception $e) {
    echo $e->getMessage(), "\n";
}