C# Examples

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

C# Examples

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


More Examples...
Amazon S3
NTLM
FileAccess
RSS
Atom
String
Byte Array
Self-Extractor
Service
PPMD
Deflate
DH Key Exchange
DSA
Bzip2
LZW

 

 

 

 

 

 

Send DKIM Signed Email

Demonstrates how to create a simple email, add a DKIM signature, and send it.

Note: Requires version 9.0.3 or greater (or v7.9.5 or greater of the Email ActiveX).

Download Chilkat .NET for 4.0 Framework

Download Chilkat .NET for 64-bit 4.0 Framework (x64)

Download Chilkat .NET for 2.0 / 3.5 Framework

Download Chilkat .NET for 64-bit 2.0 / 3.5 Framework (x64)

Download Chilkat .NET for 1.0 / 1.1 Framework

//  This example uses the Chilkat MIME/DKIM component
//  for adding a DKIM signature, and the Chilkat Email
//  component for creating and sending the email.

//  The mailman object is used for sending and receiving email.
//  The mailman object is part of the Chilkat Email product.
Chilkat.MailMan mailman = new Chilkat.MailMan();

//  Any string argument automatically begins the 30-day trial.
bool success;
success = mailman.UnlockComponent("30-day trial");
if (success != true) {
    MessageBox.Show(mailman.LastErrorText);
    return;
}

//  The dkim object is used for creating the DKIM signature.
//  It belongs to the "Chilkat MIME" product.
Chilkat.Dkim dkim = new Chilkat.Dkim();

success = dkim.UnlockComponent("Anything for 30-day trial");
if (success != true) {
    MessageBox.Show(dkim.LastErrorText);
    return;
}

//  Set the SMTP server.
mailman.SmtpHost = "smtp.chilkatsoft.com";

//  Set the SMTP login/password (if required)
mailman.SmtpUsername = "myUsername";
mailman.SmtpPassword = "myPassword";
//  Set the SmtpPort if your SMTP server uses an alternative port (default = 25)
mailman.SmtpPort = 587;

//  Create a new email object
Chilkat.Email email = new Chilkat.Email();

email.Subject = "This is a test";
email.Body = "This is a test";
email.From = "Chilkat Support <support@chilkatsoft.com>";
//  We'll send the email to a Yahoo email account.  It is then
//  possible to view the full headers within the Yahoo email
//  interface to see if the DKIM signature was accepted.
email.AddTo("Chilkat Software","chilkat_software@yahoo.com");
email.AddTo("Chilkat Admin","admin@chilkatsoft.com");

//  When sending an email with a DKIM signature, the MIME
//  of the email must not be modified (in significant ways) prior to
//  or during the sending process.  Therefore, the MIME of the
//  email is assembled, the DKIM signature is added, and then
//  SendMimeBytes is called to send the email.

//  Get the MIME of the email.  Calling RenderToMimeBytes
//  causes the email to be signed and/or encrypted if those options
//  have been selected.  The MIME returned by RenderToMimeBytes
//  is the exact MIME that would've been sent if SendEmail was
//  called.  We'll add a DKIM signature header to this MIME and then send...
byte[] mimeData = null;
mimeData = mailman.RenderToMimeBytes(email);

//  To create a DKIM 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 DKIM signature via an
//  external email client supporting DKIM 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 DKIM DNS record creation.
//  (Chilkat does not provide an API for creating DNS records.
//  Creating the DKIM DNS record is something you would do
//  manually.)

//  Set the domain and selector:
//  You'll need to provide your own values here..
dkim.DkimDomain = "chilkatsoft.com";
dkim.DkimSelector = "brisbane";

//  Load a private key from any common RSA private key
//  format, such as DER, PKCS8, PEM, XML, etc.
//  The LoadDkimPkFile 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.
string password;
password = "optionalPassword";
success = dkim.LoadDkimPkFile("myPrivateKey.pem",password);
if (success != true) {
    MessageBox.Show(dkim.LastErrorText);
    return;
}

//  Add the DKIM-Signature header and
//  returns the new MIME with DKIM-Signature added.
byte[] dkimSignedMime = null;
dkimSignedMime = dkim.AddDkimSignature(mimeData);

//  Call SendMimeBytes to connect to the SMTP server and send.
//  The connection (i.e. session) to the SMTP server remains
//  open so that subsequent Send* calls may use the
//  same connection.
string strFrom;
strFrom = "support@chilkatsoft.com";
//  To send to multiple email addresses, the strTo should be set to a comma-separated
//  list of email addresses.
string strTo;
strTo = "chilkat_software@yahoo.com, admin@chilkatsoft.com";
success = mailman.SendMimeBytes(strFrom,strTo,dkimSignedMime);
if (success != true) {
    MessageBox.Show(mailman.LastErrorText);
    return;
}

//  Some SMTP servers do not actually send the email until
//  the connection is closed.  In these cases, it is necessary to
//  call CloseSmtpConnection for the mail to be  sent.
//  Most SMTP servers send the email immediately, and it is
//  not required to close the connection.  We'll close it here
//  for the example:
success = mailman.CloseSmtpConnection();
if (success != true) {
    MessageBox.Show("Connection to SMTP server not closed cleanly.");
}

MessageBox.Show("DKIM Signed Mail Sent!");
 

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

Email Component · XML Parser