Delphi Examples

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

Delphi Examples

Bounced Mail
Bz2
Character Encoding
CSV
DKIM / DomainKey
Digital Certificates
Digital Signatures
DH Key Exchange
DSA
Email
Email Object
FTP
HTML Conversion
HTTP
IMAP
Encryption
MHT / HTML Email
NTLM
POP3
RSA
S/MIME
SMTP
Socket
Spider
SFTP
SSH
SSH Key
SSH Tunnel
String
Tar
Upload
XML
XMP
Zip Compression

More Examples...
Amazon S3
Byte Array
FileAccess
RSS
Atom
Self-Extractor
Service
PPMD
Deflate
Bzip2
LZW

Type Conversion

 

Article: Understanding COM References in Delphi

Add DomainKey-Signature Header to MIME / Email

Demonstrates how to add a DomainKey-Signature header field to a MIME message.

Note: The DKIM / DomainKey functionality is included with the Chilkat MIME license.

Download Chilkat FileAccess ActiveX (freeware)

Download Chilkat MIME ActiveX

uses
    Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
    Dialogs, StdCtrls,
    CHILKATFILEACCESSLib_TLB,
    CHILKATMIMELib_TLB,
    OleCtrls;

...

procedure TForm1.Button1Click(Sender: TObject);
var
dkim: TChilkatDkim;
success: Integer;
password: String;
mimeData: Array of Byte;
fac: TCkFileAccess;
domainKeySignedMime: Array of Byte;
facSuccess: Integer;

begin
//  Important: It is helpful to send the contents of the
//  dkim.LastErrorText property when requesting support.

dkim := TChilkatDkim.Create(Self);

//  Any string automatically begins a fully-functional 30-day trial.
success := dkim.UnlockComponent('Anything for 30-day trial');
if (success <> 1) then
  begin
    ShowMessage(dkim.LastErrorText);
    Exit;
  end;

//  To create a DomainKey signature for email (i.e. MIME),
//  you'll need to provide the following:
//  (1) An RSA private key in any common file format.
//  (2) The domain name (typically the same domain
//  as the sender of an email).
//  (3) A selector for the domain name -- an arbitrary string
//  to identify the matching public key in DNS.

//  To allow an email recipient to verify the DomainKey signature via an
//  external email client supporting DomainKey or using other software,
//  you will need to create a DNS record with the selector
//  and matching public key.  This example does not provide
//  information about DomainKey DNS record creation.
//  (Chilkat does not provide an API for creating DNS records.
//  Creating the DomainKey DNS record is something you would do
//  manually.)

//  Set the domain and selector:
//  You'll need to provide your own values here..
dkim.DomainKeyDomain := 'chilkatsoft.com';
dkim.DomainKeySelector := 'salmon';

//  Load a private key from any common RSA private key
//  format, such as DER, PKCS8, PEM, XML, etc.
//  The LoadDomainKeyPkFile method automatically detects
//  the file format and reads it appropriately.
//  If a password is not required, you'll still need to provide
//  a password string argument, but it is ignored.

password := 'optionalPassword';
success := dkim.LoadDomainKeyPkFile('myPrivateKey.pem',password);
if (success <> 1) then
  begin
    ShowMessage(dkim.LastErrorText);
    Exit;
  end;

//  Load a MIME file into a byte array.

fac := TCkFileAccess.Create(Self);
mimeData := fac.ReadEntireFile('testMessage.eml');

//  Sign it.  This adds the DomainKey-Signature header and
//  returns the new MIME with DomainKey-Signature added.

domainKeySignedMime := dkim.AddDomainKeySignature(mimeData);


facSuccess := fac.WriteEntireFile('domainKeySigned.eml', domainKeySignedMime);
if (facSuccess = 0) then
  begin
    ShowMessage(fac.LastErrorText);
    Exit;
  end;

ShowMessage('Success.');
end;

 

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

Mail Component · .NET Email Component · XML Parser