Perl Examples

ChilkatHOMEAndroid™ASPVisual BasicVB.NETC#iOS (IPhone)Objective-CC++CMFCDelphiFoxProJavaPerl
PHP ExtensionPHP ActiveXPythonPowerShellRubySQL ServerVBScript

Perl Examples

Quick Start
Unicode
Byte Array
Bz2
Certificates
CSV
Email
Encryption
FTP
HTML Conversion
HTTP
IMAP
MHT
MIME
POP3
RSA
S/MIME
Signatures
SMTP
Socket / SSL
Spider
SFTP
SSH Key
SSH
SSH Tunnel
Tar
HTTP Upload
XML
XMP
Zip

More Examples...
String
Amazon S3
Email Object
DKIM / DomainKey
NTLM
FileAccess
RSS
Atom
Self-Extractor
Service
PPMD
Deflate
DH Key Exchange
DSA
Bzip2
LZW

 

 

 

 

 

 

 

EDIFACT - S/MIME Create, Sign, and Encrypt

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

 Chilkat Perl Module Downloads for Windows, Linux, and MAC OS X

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.