Chilkat HOME .NET Core C# Android™ AutoIt C C# C++ Chilkat2-Python CkPython Classic ASP DataFlex Delphi ActiveX Delphi DLL Go Java Lianja Mono C# Node.js Objective-C PHP ActiveX PHP Extension Perl PowerBuilder PowerShell PureBasic Ruby SQL Server Swift 2 Swift 3,4,5... Tcl Unicode C Unicode C++ VB.NET VBScript Visual Basic 6.0 Visual FoxPro Xojo Plugin
(PureBasic) Send Signed and Encrypted EDI Email (EDIFACT)Demonstrates how to send a signed and encrypted EDI email (EDIFACT email).
IncludeFile "CkCert.pb" IncludeFile "CkEmail.pb" IncludeFile "CkMailMan.pb" Procedure ChilkatExample() ; This example requires the Chilkat API to have been previously unlocked. ; See Global Unlock Sample for sample code. ; The mailman object is used for sending and receiving email. mailman.i = CkMailMan::ckCreate() If mailman.i = 0 Debug "Failed to create object." ProcedureReturn EndIf ; Create a new email object email.i ; Build the basic EDI email where the body is the EDIFACT message: ediMsg.s = "UNB+IATB:1+6XPPC ..." name.s = "something" filename.s = "something" charset.s = "iso-8859-1" CkEmail::ckSetEdifactBody(email,ediMsg,name,filename,charset) CkEmail::setCkSubject(email, "This is the subject") CkEmail::setCkFrom(email, "Chilkat Admin <admin@chilkatsoft.com>") success.i = CkEmail::ckAddTo(email,"Chilkat Support","support@chilkatsoft.com") ; Indicate that the email should be sent signed. CkEmail::setCkSendSigned(email, 1) ; Tell the mailman to use a PFX file as a source for locating ; the certificate and private key required for signing. ; The certificate chosen for signing will be the one that ; matches the sender's email address, which also has ; a private key. All intermediate certs in the chain of ; authentication, up to and including the root, will ; be included in the signature. success = CkMailMan::ckAddPfxSourceFile(mailman,"/pfx_files/myCertAndPrivateKey.pfx","secret") If success <> 1 Debug CkMailMan::ckLastErrorText(mailman) CkMailMan::ckDispose(mailman) ProcedureReturn EndIf ; Load the .cer file into a certificate object. ; When sending S/MIME encrypted email, it is the recipient's ; certificate that is used for encryption. Only the public key ; is needed to encrypt. The recipient is the only ; one possessing the private key, and therefore is the only ; one able to decrypt. cert.i success = CkCert::ckLoadFromFile(cert,"/certs/recipientCert.cer") If success <> 1 Debug CkCert::ckLastErrorText(cert) CkMailMan::ckDispose(mailman) ProcedureReturn EndIf ; Indicate that the email is to be sent encrypted. CkEmail::setCkSendEncrypted(email, 1) ; Indicate that we want 192-bit 3DES encryption: CkEmail::setCkPkcs7CryptAlg(email, "3des") CkEmail::setCkPkcs7KeyLength(email, 192) ; Specify the certificate to be used for encryption. success = CkEmail::ckSetEncryptCert(email,cert) ; Tell the mailman to use an opaque signature (as opposed to a detached signature) CkMailMan::setCkOpaqueSigning(mailman, 1) ; SMTP server (use your settings and refer to the online ; reference documentation for more options) CkMailMan::setCkSmtpHost(mailman, "smtp.mymailserver.com") CkMailMan::setCkSmtpUsername(mailman, "myLogin") CkMailMan::setCkSmtpPassword(mailman, "myPassword") CkMailMan::setCkSmtpPort(mailman, 587) CkMailMan::setCkStartTLS(mailman, 1) ; Send the signed/encrypted EDI email success = CkMailMan::ckSendEmail(mailman,email) If success <> 1 Debug CkMailMan::ckLastErrorText(mailman) Else Debug "Mail Sent!" EndIf CkMailMan::ckDispose(mailman) ProcedureReturn EndProcedure |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.