Sample code for 30+ languages & platforms
PHP Extension

Add S/MIME Signature using PFX

See more MIME Examples

Add a digital signature to a MIME message using the certificate + private key from a PFX file.

Chilkat PHP Extension Downloads

PHP Extension
<?php

include("chilkat.php");

$success = false;

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

$mime = new CkMime();

// Load a PFX file into a certificate object.
$cert = new CkCert();
$pfxFilepath = 'pfxFiles/something.pfx';
$pfxPassword = 'secret';
$success = $cert->LoadPfxFile($pfxFilepath,$pfxPassword);
if ($success == false) {
    print $cert->lastErrorText() . "\n";
    exit;
}

$success = $mime->SetBodyFromPlainText('This is the plain-text MIME body.');

$mime->put_Charset('utf-8');
$mime->put_Encoding('quoted-printable');

// Sign the MIME (adds a PKCS7 detached signature)
$success = $mime->AddDetachedSignature($cert);
if ($success == false) {
    print $mime->lastErrorText() . "\n";
    exit;
}

// Save the S/MIME to a file.
$success = $mime->SaveMime('/temp/signedMime.txt');
if ($success == false) {
    print $mime->lastErrorText() . "\n";
    exit;
}

print 'success!' . "\n";

?>