Programming Examples

ChilkatHOMEASPVisual BasicVB.NETC#CC++MFCDelphiFoxProJavaPerlPythonRubySQL ServerVBScript

PHP ActiveX Examples

Bounced Mail
Bz2
Certificates/Keys
Charset
CSV
DKIM / DomainKey
Diffie-Hellman
DSA
Email Object
Encryption
FileAccess
FTP
HTML Conversion
HTTP
IMAP
MHT / HTML Email
MIME
NTLM
POP3
RSA
SMTP
Socket
Spider
SSH Key
SSH
SSH Tunnel
SFTP
Tar
Upload
XML
Zip
Amazon S3


 

 

 

 

 

 

 

 

EDIFACT - S/MIME Create, Sign, and Encrypt

Create an EDIFACT MIME message, signs it, and then encrypts.

<?php

$mime = new COM("Chilkat.Mime");

$success = $mime->UnlockComponent('Anything for 30-day trial.');
if ($success == false) {
    print $mime->lastErrorText() . "\n";
    exit;
}

//  Assuming  you have an EDIFACT document loaded into
//  a string variable, set the MIME body with it:
$ediBody = 'UNB+IATB:1+6XPPC+LHPPC+940101:0950+1' ...';
$mime->SetBodyFromPlainText($ediBody);

//  The call to SetBodyFromPlainText automatically set the
//  content-type to "text/plain".
//  However, we want:  application/edifact;  name=om080923.edi
$mime->ContentType = 'application/edifact';
$mime->Name = 'om080923.edi';

//  We want the content-disposition to be:
//  Content-Disposition: attachment; filename="om080923.edi"
$mime->Disposition = 'attachment';
$mime->Filename = 'om080923.edi';

//  Content-Transfer-Encoding: quoted-printable
$mime->Encoding = 'quoted-printable';

//  Note: MIME header fields are case insensitive.

//  Add a few other header fields:
$mime->AddHeaderField('Message-ID','<CHILKAT-MID-83cf2fbf-10cb-4322-ad79-4c1097fd56f2@Matt>');
$mime->AddHeaderField('MIME-VERSION','1.0');

//  Display the complete non-signed, non-encrypted MIME:
print $mime->getMime() . "\n";
print '*********************************************' . "\n";

//  Sign the MIME using an opaque signature.
//  (but first load a certificate)
$cert = new COM("Chilkat.Cert");
$success = $cert->LoadByCommonName('Chilkat Software, Inc.');
if ($success == false) {
    print $cert->lastErrorText() . "\n";
    exit;
}

$success = $mime->ConvertToSigned($cert);
if ($success == false) {
    print $mime->lastErrorText() . "\n";
    exit;
}

//  Perhaps the receiver is picky and wants the content-type to be "application/pkcs7-mime"
//  instead of "application/x-pkcs7-mime".  In that case, simply set the content-type:
$mime->ContentType = 'applicaton/pkcs7-mime';

//  Display the signed MIME:
print $mime->getMime() . "\n";
print '*********************************************' . "\n";

//  Now encrypt it.
$encryptCert = new COM("Chilkat.Cert");
$success = $encryptCert->LoadByCommonName('speedi speedi');
if ($success == false) {
    print $encryptCert->lastErrorText() . "\n";
    exit;
}

$success = $mime->Encrypt($encryptCert);
if ($success == false) {
    print $mime->lastErrorText() . "\n";
    exit;
}

//  Again, if receiver is picky and wants the content-type to be "application/pkcs7-mime"
//  instead of "application/x-pkcs7-mime".  In that case, simply set the content-type:
$mime->ContentType = 'applicaton/pkcs7-mime';

//  Display the signed/encrypted MIME
print $mime->getMime() . "\n";
print '*********************************************' . "\n";

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

print 'Success!' . "\n";
?>

Need a specific example? Send a request to support@chilkatsoft.com

© 2000-2010 Chilkat Software, Inc. All Rights Reserved.