Chilkat
HOME
Android™
ASP
Visual Basic
VB.NET
C#
iOS (IPhone)
Objective-C
C++
C
MFC
Delphi
FoxPro
Java
Perl
PHP Extension
PHP ActiveX
Python
PowerShell
Ruby
SQL Server
VBScript
EDIFACT - S/MIME Create, Sign, and EncryptCreate an EDIFACT MIME message, signs it, and then encrypts.
use chilkat(); $mime = new chilkat::CkMime(); $success = $mime->UnlockComponent("Anything for 30-day trial."); if ($success == 0) { 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->put_ContentType("application/edifact"); $mime->put_Name("om080923.edi"); # We want the content-disposition to be: # Content-Disposition: attachment; filename="om080923.edi" $mime->put_Disposition("attachment"); $mime->put_Filename("om080923.edi"); # Content-Transfer-Encoding: quoted-printable $mime->put_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() . "\r\n"; print "*********************************************" . "\r\n"; # Sign the MIME using an opaque signature. # (but first load a certificate) $cert = new chilkat::CkCert(); $success = $cert->LoadByCommonName("Chilkat Software, Inc."); if ($success == 0) { print $cert->lastErrorText() . "\n"; exit; } $success = $mime->ConvertToSigned($cert); if ($success == 0) { 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->put_ContentType("applicaton/pkcs7-mime"); # Display the signed MIME: print $mime->getMime() . "\r\n"; print "*********************************************" . "\r\n"; # Now encrypt it. $encryptCert = new chilkat::CkCert(); $success = $encryptCert->LoadByCommonName("speedi speedi"); if ($success == 0) { print $encryptCert->lastErrorText() . "\n"; exit; } $success = $mime->Encrypt($encryptCert); if ($success == 0) { 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->put_ContentType("applicaton/pkcs7-mime"); # Display the signed/encrypted MIME print $mime->getMime() . "\r\n"; print "*********************************************" . "\r\n"; # Save the MIME to a file: $success = $mime->SaveMime("edifact_smime.txt"); if ($success == 0) { print $mime->lastErrorText() . "\n"; exit; } print "Success!" . "\n"; |
© 2000-2010 Chilkat Software, Inc. All Rights Reserved.